Tengo la matriz "arrs" con matrices anidadas como la siguiente:
let arrs = ["Apple", ["Peach", "Grape"], [["Pear", "Kiwi"], ["Lemon"]]];Ahora, quiero convertir la matriz "arrs" a la nueva matriz "newArr" sin matrices anidadas como la siguiente:
let newArr = [ "Apple", "Peach", "Grape", "Pear", "Kiwi", "Lemon" ];Creé el código para convertir "arrs" en "newArr" sin matrices anidadas :
let newArr = [arrs[0], arrs[1][0], arrs[1][1], arrs[2][0][0], arrs[2][0][1], arrs[2][1][0]]; console.log(newArr); // [ "Apple", "Peach", "Grape", "Pear", "Kiwi", "Lemon" ]Este es el código ejecutable completo :
let arrs = ["Apple", ["Peach", "Grape"], [["Pear", "Kiwi"], ["Lemon"]]]; let newArr = [arrs[0], arrs[1][0], arrs[1][1], arrs[2][0][0], arrs[2][0][1], arrs[2][1][0]]; console.log(newArr); // [ "Apple", "Peach", "Grape", "Pear", "Kiwi", "Lemon" ]Sin embargo, quiero hacer este código más simple, genial o inteligente . ¿Hay alguna manera de hacer esto?
let newArr = [arrs[0], arrs[1][0], arrs[1][1], arrs[2][0][0], arrs[2][0][1], arrs[2][1][0]]; console.log(newArr); // [ "Apple", "Peach", "Grape", "Pear", "Kiwi", "Lemon" ]Puedes usar "flat()" con "2" :
let arrs = ["Apple", ["Peach", "Grape"], [["Pear", "Kiwi"], ["Lemon"]]]; let newArr = arrs.flat(2); console.log(newArr); // [ "Apple", "Peach", "Grape", "Pear", "Kiwi", "Lemon" ]Además, puede usar "flat()" con "Infinity" para cualquier profundidad de matriz anidada .
let arrs = ["Apple", ["Peach", "Grape"], [["Pear", "Kiwi"], ["Lemon"]]]; let newArr = arrs.flat(Infinity); console.log(newArr); // [ "Apple", "Peach", "Grape", "Pear", "Kiwi", "Lemon" ]