javascript - 使用javascript查找最接近的数组索引

标签 javascript arrays indexing find closest

我有以下功能:

(function(){
    function closest (num, arr) {
        var curr = arr[0];
        var diff = Math.abs (num - curr);
        for (var val = 0; val < arr.length; val++) {
            var newdiff = Math.abs (num - arr[val]);
            if (newdiff < diff) {
                diff = newdiff;
                curr = arr[val];
            }
        }
        return curr;
    }
    var _array = [2, 42, 82, 122, 162, 202, 242, 282, 322, 362],
        _number = 155;

    return closest (_number, _array);
})()

结果是 162


在这个数组中,我想显示最接近结果的索引! 结果应该是数字 4

最佳答案

您可以存储索引并返回该值。

function closest(num, arr) {
    var curr = arr[0],
        diff = Math.abs(num - curr),
        index = 0;

    for (var val = 0; val < arr.length; val++) {
        let newdiff = Math.abs(num - arr[val]);
        if (newdiff < diff) {
            diff = newdiff;
            curr = arr[val];
            index = val;
        }
    }
    return index;
}

var array = [2, 42, 82, 122, 162, 202, 242, 282, 322, 362],
    number = 155;

console.log(closest(number, array));

关于javascript - 使用javascript查找最接近的数组索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60028904/

相关文章:

javascript - 将 JSON 打印到屏幕以用于剪切和粘贴

arrays - Lua:使用不同的大小写对字符串数组进行排序

java - 查找二维数组的可能组合

javascript - 如何为循环的循环添加计数器编号?

python - 根据值的集合成员资格为 numpy 数组创建掩码

javascript - 当元素被放入其中时,使可放置的 div 展开。使用可拖动的 jquery ui

javascript - 单击事件阻止鼠标移开触发

javascript - Angular : Fetch value of textbox onclick of button

javascript - for 循环的替代方案

arrays - matlab:在元素之后插入元素?