我有一个JavaScript数组和一个像这样的变量;
var a = [0, 1200, 3260, 9430, 13220],
b = 4500;
Run Code Online (Sandbox Code Playgroud)
选择数组中仍然小于或等于变量的最大值的最明智的方法是什么?
在这个例子中,我需要选择3260.
我可以这样做;
$.each(a, function(i){
if(a[i] <= b && a[i+1] > b){
var c = a[i];
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
但我认为如果选定的数组值是最后一个,则可能无效.更不用说,对我来说,看起来很多代码都很简单.
是否有更聪明/更简洁的方式来实现我追求的目标?
(是的,我知道我不应该使用jQuery循环但是在输入示例时我很懒)
小智 9
另一种方法是通过数组过滤和apply()的组合,我认为这是一种非常易读的方法.对filter()的调用只返回一个不满足谓词函数的元素数组,然后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}));
Run Code Online (Sandbox Code Playgroud)
结果将等于4.
| 归档时间: |
|
| 查看次数: |
2244 次 |
| 最近记录: |