javascript - find closest index of array in javascript
问题描述
Please look at this array:
(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);
})()
Result is 162
Hello,In this array I want to show the closest index to the result!
The result will be 4
解决方案
You could store the index and return this value.
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));
推荐阅读
- java - 有没有办法将空手道测试套件打包到可运行的 jar 中?
- java - JPanel.remove 不能与 JButton actionListener 一起使用?
- opengl - glGetAttribLocation 返回未找到
- ruby-on-rails - rails 6 从一个控制器将数据保存到多个表中
- slack - slack 撤销对 3rd 方应用程序的授权
- javascript - 全部解决后执行承诺(作为数据库事务)
- http-headers - 有没有办法设置 Content-Security-Policy 标头来表示不要从任何具有主机名的 URL 运行 javascript
- vue-router - 特定参数的 VueJS 路由器别名
- c++ - 如何找出 Azure 管道图像内容?
- c# - 如何在文本文件中的特定位置写入文本