Javascript max() for array column
Javascript max() for array column
通常当我需要找到数组的最大值时,我使用这个非常简单的代码: 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;
};
我很好奇是否有更漂亮/更简单的方法?
我会这样写:
Math.max.apply(Math, array.map(v => v[0]));
array.map
将根据您的领料逻辑转换原始数组,在本例中返回第一项。然后将转换后的数组馈送到Math.max()
若要避免创建新数组,还可以将数组减少到单个值:
array.reduce((max, current) => Math.max(max, current[0]), -Infinity)
如您所见,我们需要添加 -Infinity
的初始值,如果数组为空,则返回该值。
这是一个很好的应用程序Array.prototype.reduce
:
max = data.reduce(function(previousVal, currentItem, i, arr) {
return Math.max(previousVal, currentItem[0]);
}, Number.NEGATIVE_INFINITY);
这也避免了代码中如果 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);
});
相关文章:
- 如何为json对象中的段发送array[]
- Array.length似乎不起作用;console.log则显示其他情况
- 如何迭代Array.prototype函数
- Javascript 新的 Array 和 join() 方法
- Array.lenght = undefined
- Javascript setTimeout for an array
- NodeJS API调用中Array中的Push和Pull元素
- 如何在MongoDB中将String转换为Array
- 为什么我可以在Array属性对象中找到Javascript Array for Each方法
- 您的平台不支持RxJS-Array.observe
- 在Jquery/Javascript中的Array中插入Textbox值
- 通过jQueryAjax一起发布Array和Form数据时出现问题
- Array.every返回false,而不是类型error
- Javascript-通过i=0直接传递array[0]与array[0],array[i]在“;如果“;陈述
- JavaScript Array unshift() 以一种不可变的方式
- 为什么可以't我用Set对象调用Array.prototype.map
- Array方法中的Javascript循环
- zoomToCategory on amchart column chart
- 为什么这个array.filter总是不返回任何内容
- Javascript max() for array column