我想从数组中获得最小值.如果该数据包含null的值,Math.min.apply返回0的null值.请看这个JSFiddle示例.即使数组中存在空值,如何获得真正的最小值?
代码(与JSFiddle示例相同):
var arrayObject= [ {"x": 1, "y": 5}, {"x": 2, "y": 2}, {"x": 3, "y": 9}, {"x": 4, "y": null}, {"x": 5, "y": 12} ];
var max = Math.max.apply(Math, arrayObject.map(function(o){return o.y;}));
var min = Math.min.apply(Math, arrayObject.map(function(o){return o.y;}));
$("#max").text(max);
$("#min").text(min);
Run Code Online (Sandbox Code Playgroud)
那么,数值null是0.如果您不希望null考虑值,则必须将其过滤掉:
var values = arrayObject.map(function(o){
return o.y;
}).filter(function(val) {
return val !== null
});
Run Code Online (Sandbox Code Playgroud)
参考:Array#filter
替代Felix的解决方案:把null作为+或-分别无穷最低和最高要求.
var max = Math.max.apply(Math, arrayObject.map(function(o) {
return o.y == null ? -Infinity : o.y;
}));
var min = Math.min.apply(Math, arrayObject.map(function(o) {
return o.y == null ? Infinity : o.y;
}));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7466 次 |
| 最近记录: |