为了账号安全,请及时绑定邮箱和手机立即绑定

使用 JavaScript 检查输入数字是否在范围内

使用 JavaScript 检查输入数字是否在范围内

HUH函数 2021-12-02 16:52:18
检查输入是否在数组范围内。假设,如果输入值为 12,答案应该是球。var ranges = [{"1-10":"Apple"},{"11-20":"Ball"},{"21-30":"Cat"}]var input_number = 12;var get_answer = ...  // should be "Ball"
查看完整描述

3 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

简单的代码给你


var ranges = [{"1-10":"Apple"},{"11-20":"Ball"},{"21-30":"Cat"}]


function getAns(input_number) {

  let result = null

  // handle input ranges

  for (let index in ranges) {

    for (let key in ranges[index]) {

      let min = key.split('-')[0]

      let max = key.split('-')[1]

      if (input_number >= min && input_number <= max) {

        result = ranges[index][key]

      }

    }

  }

  return result

}


console.log(getAns(12))


查看完整回答
反对 回复 2021-12-02
?
千巷猫影

TA贡献1829条经验 获得超7个赞

我会使用过滤器


const getValue = (value, ranges) => {

  const res = ranges.filter(obj => {

    const [min, max] = Object.keys(obj)[0].split("-");

    return value >= +min && value <= +max;

  })

  return res && res.length > 0 ?  Object.values(res[0])[0] :  "N/A"

}


const ranges = [{"1-10":"Apple"},{"11-20":"Ball"},{"21-30":"Cat"}]


console.log(getValue(0,ranges))

console.log(getValue(1,ranges))

console.log(getValue(12,ranges))

console.log(getValue(30,ranges))

console.log(getValue(31,ranges))


查看完整回答
反对 回复 2021-12-02
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

尝试

ranges.map(x=> Object.entries(x).flat() )
       .find(a=> (a[0]=a[0].split`-`, n>=a[0][0] && n<=a[0][1] && a[1]) )

var ranges = [{"1-10":"Apple"},{"11-20":"Ball"},{"21-30":"Cat"}]

var n=12;


var r = ranges.map( x=>Object.entries(x).flat() )

              .find(a=> (a[0]=a[0].split`-`, n>=a[0][0] && n<=a[0][1] && a[1]) )

console.log(r[1]);

查看完整回答
反对 回复 2021-12-02
  • 3 回答
  • 0 关注
  • 622 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信