Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中查找最接近的数组索引_Javascript_Arrays_Indexing_Find_Closest - Fatal编程技术网

在javascript中查找最接近的数组索引

在javascript中查找最接近的数组索引,javascript,arrays,indexing,find,closest,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 (n

请看这个阵列:

(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);
})()
(函数(){
函数最近(num,arr){
var curr=arr[0];
var diff=Math.abs(num-curr);
对于(var-val=0;val
结果为162


您好,在这个数组中,我想显示与结果最接近的索引!
结果将是4

您可以存储索引并返回此值

函数最近(num,arr){
var curr=arr[0],
diff=数学绝对值(num-curr),
指数=0;
对于(var-val=0;vallog(最近的(数字,数组))这里有一个更简单的解决方案:

  • 查找数字与数组中数字之间的差异
  • 在新的差异数组中找到最小值
  • 现在找到最小值的索引
  • var\u数组=[2,42,82,122,162,202,242,282,322,362],
    _数目=155;
    //最近的索引?
    const diffArr=_array.map(x=>Math.abs(_number-x));
    const minNumber=Math.min(…diffArr);
    常量索引=diffArr.findIndex(x=>x==minNumber);
    
    日志('结果索引',索引)谢谢你,伙计谢谢你,伙计