<1 empty item>我该如何解决这个问题?

问题描述 投票:0回答:2
function findLargestNumbers(arrayOfArrays) {
    let k = new Array;
    for(let i = 0 ; i < arrayOfArrays.length ; i++){
        if(arrayOfArrays[i].length == 0){ 
            continue ;
        }
        let ans = arrayOfArrays[i][0];
        for(let j = 0 ; j < arrayOfArrays[i].length ; j++){
            ans = Math.max(ans,arrayOfArrays[i][j]);
        }
        k[i] = ans;
    }
    return k;
}

我想做的是得到最大的数字,这件事真的很糟糕,甚至这个字数限制是什么,这必须是足够的信息,你们会明白到底发生了什么 [[], [1, 2], []] 预计 [2]

javascript arrays multidimensional-array
2个回答
0
投票

只需为 k[i] 保留另一个变量,那么一切都会被修复。


0
投票

作为一个不太复杂的替代方案,您可以考虑

Math.max(...arrayOfArrays.flat())

const arr = [[-2, 3, 10], [33, 30, 40], [-100, 199, 5]];

// @benchmark the easiest
Math.max(...arr.flat());

// @benchmark the fastest
arr.reduce((r, item) => Math.max(r, item.reduce((r, item) => Math.max(r, item), Number.MIN_SAFE_INTEGER)), Number.MIN_SAFE_INTEGER);

/*@end*/eval(atob('e2xldCBlPWRvY3VtZW50LmJvZHkucXVlcnlTZWxlY3Rvcigic2NyaXB0Iik7aWYoIWUubWF0Y2hlcygiW2JlbmNobWFya10iKSl7bGV0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7dC5zcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9naC9zaWxlbnRtYW50cmEvYmVuY2htYXJrL2xvYWRlci5qcyIsdC5kZWZlcj0hMCxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHQpfX0='));

© www.soinside.com 2019 - 2024. All rights reserved.