我有一个像 var test = [2,5,8,12,56];
这样的 javascript 数组,现在我想搜索最接近的下一个值 9。所以输出是 12这种情况(而不是 8 个!)。
最佳答案
这是一个简单的方法:
function getNextVal(arr, val) {
// omit the next line if the array is always sorted:
arr = arr.slice(0).sort(function(a,b){return a-b;});
for (var i=0; i < arr.length; i++)
if (arr[i] >= val)
return arr[i];
// return default value when val > all values in array
}
如果搜索值在数组中,您没有说明要返回什么,所以我假设您想要返回它。如果通过“最接近的下一个值”你的意思是它应该总是返回比搜索值更改更高的下一个数字 arr[i] >= val
以使用 >
而不是 >=
。
如果你有一个大数组,你可能需要某种二进制排序而不是从头开始。
关于javascript - 在javascript数组中搜索最接近的下一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11914546/