我有一个像这样的数组:

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。

任何指导将不胜感激。

还尝试了其他答案,但没有帮助。

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);

10-01 01:38