将JSON数组与用户输入进行比较并获取值

时间:2015-08-04 10:09:26

标签: javascript arrays json

我正在构建某种计算器,用户可以输入他的收入,然后函数在JSON数组上迭代以找到相应的数字。它应该是这样的:

if (z >= x && z <= y)

其中z是用户输入,x和y是双方的限制。

这是JSON数组(只有3个100):

[["0",0],["1",898],["2",12654],["3",15753]]

我不知道怎么写这个功能。我可以使用100 ifs和elseifs来做到这一点。但我很确定有更好的方法。

1 个答案:

答案 0 :(得分:1)

基本上,你需要遍历每个界限,以找到人的收入来源,例如。

function getIncomeBound(input) {
    //Note: this is not the best way to store this data but that's another issue
    var bounds = [["0",0],["1",898],["2",12654],["3",15753]];
    var out = bounds[0];
    bounds.forEach(function (el, idx) {
        out = (idx !== 0 && input <= el[1] && input > bounds[idx - 1][1] ? el : out);
    });
    return out;
}

<强>解释

  • 设置一个变量out,它将是我们返回第一个绑定的值
  • 循环遍历边界,如果输入低于当前界限并且高于之前的界限,我们将其设置为out值(注意:我们跳过第一次迭代idx !== 0,因为我们设置了这个作为out值))
  • 通过这种方法,我们应该到达输入之间的界限并返回该值