ffl*_*dro 11 javascript math max
通常当我需要找到数组的最大值时,我使用这个非常简单的代码:
var max = Math.max.apply(Math, array);
但是,现在我有一个多维数组,其中每行我有一个包含5列的数组.是否有类似的方法来查找某列的最大值?现在我正在做:
var maxFunc = function(data){
var max = 0;
data.forEach(function(value){
max = Math.max(max, value[0]);
});
return max;
};
Run Code Online (Sandbox Code Playgroud)
我很好奇是否有更漂亮/更简单的方法呢?
Ja͢*_*͢ck 14
我会这样写:
Math.max.apply(Math, array.map(function(v) {
return v[0];
}));
Run Code Online (Sandbox Code Playgroud)
在array.map将改变根据您的采摘逻辑原始数组,在这种情况下,返回的第一个项目.然后将转换后的阵列送入Math.max()
这是一个伟大的应用程序Array.prototype.reduce:
max = data.reduce(function(previousVal, currentItem, i, arr) {
return Math.max(previousVal, currentItem[0]);
}, Number.NEGATIVE_INFINITY);
Run Code Online (Sandbox Code Playgroud)
这也避免了代码中的错误,如果所有值data都小于,则会发生错误0.你应该比较Number.NEGATIVE_INFINITY而不是0.
或者,您可以在减少到最大值之前规范化数据:
max = data.map(function (d) {
return d[0];
}).reduce(function (p, c, i, arr) {
return Math.max(p, c);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5748 次 |
| 最近记录: |