【发布时间】:2018-05-21 08:44:32
【问题描述】:
我有一个这样的数组:
var arr = [[12,45,75], [54,45,2],[23,54,75,2]];
我想找出嵌套数组中所有元素中最大的元素和最小的元素:
最小值应该是:2
和
最大值应为 75
我尝试了以下功能,但它们不起作用:
function Max(arrs)
{
if (!arrs || !arrs.length) return undefined;
let max = Math.max.apply(window, arrs[0]), m,
f = function(v){ return !isNaN(v); };
for (let i = 1, l = arrs.length; i<l; i++) {
if ((m = Math.max.apply(window, arrs[i].filter(f)))>max) max=m;
}
return max;
}
function Min(arrs)
{
if (!arrs || !arrs.length) return undefined;
let min = Math.min.apply(window, arrs[0]), m,
f = function(v){ return !isNaN(v); };
for (let i = 1, l = arrs.length; i<l; i++) {
if ((m = Math.min.apply(window, arrs[i].filter(f)))>min) min=m;
}
return min;
}
它给出的最大值为 75,最小值为 12。
任何指导将不胜感激。
还在 SO 中尝试了其他答案,但没有任何帮助。
Merge/flatten an array of arrays in JavaScript?的答案解决了合并数组的问题。
而我的问题是保持数组不变并执行操作。
【问题讨论】:
-
为什么要检查号码?你期望 NaN 值吗?
标签: javascript arrays max min