如何在数组中找到每个子数组的最大值,然后将它们分组到一个新数组中

Ari*_*a A 1 javascript arrays iteration

如何在数组中找到每个子数组的最大值,然后将它们分组到一个新数组中?

例如:

[1, 2, [3, 4]]//return[2, 4]
[1000, [1001, 857, 1]]//return[1000, 1001]
[[4, 5, 1, 3], 2 , 6 ,[1000, [1001, 857, 1]]]//return[5, 6, 1000, 1001]
Run Code Online (Sandbox Code Playgroud)

小智 6

试试这个:

const a = [1, 2, [3, 4]];
const b = [1000, [1001, 857, 1]];
const c = [[4, 5, 1, 3], 2 , 6 ,[1000, [1001, 857, 1]]];

const max = (array) => {

    const a1 = [];
    const a2 = [];

    array.forEach((a) => (a instanceof Array) ? a1.push(max(a)) : a2.push(a));

    a1.push(Math.max(...a2));

    return a1.reduce((acc, val) => acc.concat(val), []).sort((a, b) => a - b);
};

console.log(max(a));
console.log(max(b));
console.log(max(c));
Run Code Online (Sandbox Code Playgroud)