js 输入长度可以获取最接近的值并返回 名称

例如输入L = 200 返回数组中的 ip-5

var arr = [

["IP-1", 0]

["IP-2", 13.995886423358685]

["IP-3", 68.39963953170276]

["IP-4", 138.76858428768008]

["IP-5", 149.30208981161982]

["IP-6", 834.9549765566625]

["IP-7", 1090.4950690761289]

["IP-8", 1247.927742934118]

["IP-9", 1310.497021041034]

["IP-10", 1956.925744992665]

["IP-11", 2270.413239030439]

["IP-12", 3337.6333001873586]

]
阅读 1.5k
2 个回答

根据 数组设置一个对象 即是

function (value) {
  // 设置一个 map
   const map = new Map() 
   // 设置每个 绝对值 和 name 
   arr.forEach(x => {
        const number = Math.abs(value - x[1])
        map.set(number, x[0])
    })
    // 得到 map里面最小的 value,得到名字
    return map.get(Math.min.apply(null,Array.from(map.keys())))
}

这样首先你的数组中的值,做好是排过顺序的,然后根据二分法 进行查找比较

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题