首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Object查找给定数字的范围

如何使用Object查找给定数字的范围
EN

Stack Overflow用户
提问于 2019-02-13 23:29:54
回答 6查看 52关注 0票数 1

JSFiddle:https://jsfiddle.net/oaxgzsr1/

顺便说一下,随机数实际上不是一个随机数,而是一个变量。很抱歉。

脚本:

代码语言:javascript
运行
复制
  var random = 5;
  var rangeof = "";

  /* option #1 */
  if (random > 0 && random <= 5)
  rangeof = "1-5";
  if (random > 5 && random <= 10)
  rangeof = "6-10";
  if (random > 10 && random <= 15)
  rangeof = "10-15";
  if (random > 15 && random <= 20)
  rangeof = "16-20";
  if (random > 20 && random <= 25)
  rangeof = "21-25";
  //and so forth until we hit 100


  /* option #2 */
  var ranges = {
  1: "1-5",
  2: "1-5",
  3: "1-5",
  4: "1-5",
  5: "1-5",
  6: "6-10",
  7: "6-10",
  8: "6-10",
  9: "6-10",
  10: "6-10"
  //and so forth until we hit 100
  };

  alert(ranges[5]);

正如您所看到的,它可能会变得很长,并且很难维护。

有没有可能这样做:

代码语言:javascript
运行
复制
  var ranges = {
    1-5: "1-5",
    6-10: "6-10",
    11-15: "11-15",
    16-20: "16-20"
  }

因此,对于任何给定的数字,我可以使用范围拉出键值。

例如:

如果number为7,则它落在6-10键范围内,并且我将获得的值为6-10

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2019-02-13 23:39:20

逻辑总是相同的和单调的吗?然后你可以这样做:

代码语言:javascript
运行
复制
const range = 5;

function inWhatRange(num) {
   const multiple = Math.floor( (num-1) / range);
   return `${multiple*range + 1}-${(multiple+1)*range}`;
}

console.log(inWhatRange(3));
console.log(inWhatRange(5));
console.log(inWhatRange(10));
console.log(inWhatRange(11));

票数 3
EN

Stack Overflow用户

发布于 2019-02-13 23:38:50

你可以计算一个随机数的间隔。

代码语言:javascript
运行
复制
var random = Math.floor(Math.random() * 100 + 1),
    size = 5,
    slot = Math.floor((random - 1) / size),
    interval = [slot * size + 1, (slot + 1) * size].join('-');

console.log(random, interval);

票数 2
EN

Stack Overflow用户

发布于 2019-02-13 23:39:11

你可以为此创建一个简单的函数。只需使用特定的范围步长在您的范围内迭代,并检查最小/最大值。

代码语言:javascript
运行
复制
const startRange = 1;
const endRange = 20;
const rangeStep = 4;

function getNumberRange(number){
  for(let i = startRange; i<endRange; i+=rangeStep+1){
    if(number >= i && number <= i+rangeStep){ 
      console.log(`${number} range: ${i}-${i+rangeStep}`);
    }
  }
}


getNumberRange(3);
getNumberRange(5);
getNumberRange(10);
getNumberRange(11);

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54673779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档