我有一个这样的数组:
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?解决了合并数组的问题。
而我的问题是保持数组原样并执行操作。
最佳答案
假设 ES6
const arr = [[12,45,75], [54,45,2],[23,54,75,2]];
const max = Math.max(...[].concat(...arr));
const min = Math.min(...[].concat(...arr));
console.log(max);
console.log(min);
关于javascript - 从javascript中的所有嵌套数组中找到最大和最小元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47691738/