在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;val log(最近的(数字,数组))代码>这里有一个更简单的解决方案:
查找数字与数组中数字之间的差异
在新的差异数组中找到最小值
现在找到最小值的索引
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);
日志('结果索引',索引)代码>谢谢你,伙计谢谢你,伙计