javascript - 在javascript数组中搜索最接近的下一个值

标签 javascript

我有一个像 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/

相关文章:

javascript - 使用 localstorage 在 React 或 React Native 中仅显示一次组件

javascript - 在 applyBindings 上敲击触发点击绑定(bind)

javascript - 如何设置远程域的 cookie?

javascript - 停止来自 Ember 操作的点击传播?

javascript - AngularJS UI 路由器链接到状态之间的 URL 参数的状态

javascript - 如何对 Canvas 上的形状进行排序 - JavaScript

javascript - vue-router:使用浏览器后退按钮时跳过页面

javascript - 我可以从 HTML 字符串或 dom 节点/元素创建 React 元素吗

javascript - 如何获取具有绝对位置的元素的绝对坐标(JavaScript,浏览器)

c# - 使用 C# 通过打印机对话框打印 docx 文件