我有一个 JavaScript 数组和一个变量,如下所示;
var a = [0, 1200, 3260, 9430, 13220],
b = 4500;
选择数组中仍然小于或等于变量的最大值的最聪明方法是什么?
在此示例中,我需要选择3260
.
我可以做这样的事情;
$.each(a, function(i){
if(a[i] <= b && a[i+1] > b){
var c = a[i];
return false;
}
});
但我认为如果所选数组值是最后一个值,这可能不起作用。更不用说,对我来说,它看起来像是很多相当简单的代码。
有没有更聪明/更简洁的方法来实现我所追求的目标?
(是的,我知道我不应该使用 jQuery 循环,但我在输入示例时很懒)
另一种方法是通过数组过滤和 apply() 的组合,我认为这是一种非常可读的方法。
对filter() 的调用仅返回a 中不满足谓词函数的元素数组,然后apply() 以每个元素作为参数调用Math.max。
var a = [1, 2, 3, 4, 5];
var b = 4;
var result = Math.max.apply(Math, a.filter(function(x){return x <= b}));
结果将等于 4。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)