JSFiddle:https://jsfiddle.net/oaxgzsr1/
顺便说一下,随机数实际上不是一个随机数,而是一个变量。很抱歉。
脚本:
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]);
正如您所看到的,它可能会变得很长,并且很难维护。
有没有可能这样做:
var ranges = {
1-5: "1-5",
6-10: "6-10",
11-15: "11-15",
16-20: "16-20"
}
因此,对于任何给定的数字,我可以使用范围拉出键值。
例如:
如果number为7,则它落在6-10
键范围内,并且我将获得的值为6-10
。
发布于 2019-02-13 23:39:20
逻辑总是相同的和单调的吗?然后你可以这样做:
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));
发布于 2019-02-13 23:38:50
你可以计算一个随机数的间隔。
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);
发布于 2019-02-13 23:39:11
你可以为此创建一个简单的函数。只需使用特定的范围步长在您的范围内迭代,并检查最小/最大值。
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);
https://stackoverflow.com/questions/54673779
复制相似问题