gpt4 book ai didi

javascript - 在javascript中查找数组中的数字

转载 作者:行者123 更新时间:2023-11-28 16:02:29 24 4
gpt4 key购买 nike

我使用以下代码来查找数组中最接近的值。

var x=[0,1,2,3,4,5];
var pointX=1.5;

$.each(x, function() {
if (closest == null || Math.abs(this - pointX) < Math.abs(closest - pointX)) {
closest = this;
}
});

这将返回 2。

现在考虑以下场景:

var x=[20,21,22,23,24,25]

var pointX=1.5

对于本例,它返回 20,但我不希望它返回,因为 1.5 不在范围 (20-25) 内。在这种情况下,它应该返回 null。我怎样才能做到这一点?

最佳答案

尝试

function closest(x, pointX){
var closest = null;

if(pointX < x[0] || pointX > x[x.length -1]){
return null
}


$.each(x, function(i,v) {
if (closest == null || Math.abs(v - pointX) <= Math.abs(closest - pointX)) {
closest = v;
}
});
return closest;
}

演示:Fiddle

另一种方法是对数组进行排序以确保索引正确

function closest(x, pointX){
var closest = null, array = x.slice();

array.sort();

if(pointX < array[0] || pointX > array[array.length -1]){
return null
}

$.each(array, function(i,v) {
if (closest == null || Math.abs(v - pointX) <= Math.abs(closest - pointX)) {
closest = v;
}
});
return closest;
}

关于javascript - 在javascript中查找数组中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16458973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com