javascript - 从javascript中的所有嵌套数组中找到最大和最小元素

标签 javascript arrays max min

我有一个这样的数组:

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/

相关文章:

javascript - Highcharts 单行堆叠单杠 : labels overlap --- bar segments too small to read "dataLabels" --- (change "distance" of "dataLabels"? )

javascript - Javascript中对象的自定义属性映射

arrays - Numpy 二维数组 bool 掩码

python - 为什么 np.median() 返回多行?

javascript - MongoDB 嵌套查询仅返回最后出现的结果

mysql - 加入表格并选择最高日期值

Sqlite:当行不存在或为空时将最大值设置为零

javascript - 如何将 csrf_token 添加到动态生成的表单中?

javascript - 渐进式 Web 应用程序 HTTPS 到 HTTP 请求

mysql - MAX函数为NULL时如何设置0?