给定以下范围和索引:
index from to
11 24 48
10 12 24
9 6 12
8 3 6
7 1.5 3
6 0.75 1.5
5 0.375 0.75
4 0.1875 0.375
3 0.09375 0.1875
2 0.046875 0.09375
1 0.0234375 0.046875
0 0.015625 0.0234375
我应该如何组织(数据/算法)使其具有类似于:
x=0.22;
n=findIndex(x);
alert(n);
// output 4
显然,它可以用于任何大小的索引。我唯一想到的是嵌套的如果。。。
谢谢。
最佳答案
我会这样写:
var indexes = {
11 : [24, 48],
10 : [12, 24],
9 : [6, 12],
8 : [3, 6],
7 : [1.5, 3],
6 : [0.75, 1.5],
5 : [0.375, 0.75],
4 : [0.1875, 0.375],
3 : [0.09375, 0.1875],
2 : [0.046875, 0.09375],
1 : [0.0234375, 0.046875],
0 : [0.015625, 0.0234375]
};
var x = 0.22;
var n = findIndex(x);
function findIndex(d){
for(var key in indexes){
if(d >= indexes[key][0] && d <= indexes[key][1])
return key;
}
}
alert(n);
Fiddle
可能不是最有效的代码,乐于改进。
关于javascript - 使用Javascript查找范围值的索引,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23115401/