给定以下范围和索引:

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/

10-10 14:23