Javascript在数组中找到最接近的数字,而不需要重复

Javascript find closest number in array without going over

本文关键字:数字 不需要 最接近 数组 Javascript      更新时间:2023-09-26

我如何修改这个非常好的函数来找到最接近的数字,但永远不会高于输入?

function closest(arr, closestTo){
var closest = Math.max.apply(null, arr);
for(var i = 0; i < arr.length; i++){
    if(arr[i] >= closestTo && arr[i] < closest) closest = arr[i];
}
return closest;
}
console.log(closest(myArray, 1234));

感谢您的帮助

您可以删除检查greater的部分。另一种方法是:删除较大的值,并从剩余的值中获取最大值:

function closest(arr,val){
    return Math.max.apply(null, arr.filter(function(v){return v <= val}))
}
console.log(closest([1,22,121223],24)) // prints 22

删除greater than比较器:

if(arr[i] == closestTo && arr[i] < closest) closest = arr[i];