配列を次元に下げるにはどうすればいいですか?


Array.prototype.{flat,flatMap}
この特性は2つの方法を新しく創造しました.
  • Array.prototype.flat配列のすべてのアイテムは、指定した次元で次元を下げ(フラット化)、新しい配列を構成して返されます.
  • Array.prototype.flatMapはまずmap()メソッドを1回実行し,次にflat()メソッドのような方法で配列を平坦化する.これはmap()を実行した後にflat()メソッドをもう一度実行することに等しいので、map()を実行して戻った結果が配列であれば、扁平化されると便利になります.

  • いくつかの例を見て説明すると、まずflat()法は多次元配列の平坦化をサポートし、Infinityは多次元配列を1次元配列に圧縮することができる.
    let r;
    r = ["1", ["8", ["9", ["1"]]]].flat();//4   ,    1,  3   
    console.log(r); //>> [ '1', '8', [ '9', ['1'] ] ]
    
    r = ["1", ["8", ["9", ["1"]]]].flat(2); //4   ,  2,  2   
    console.log(r); //>> [ '1', '8', '9', ['1'] ]
    
    r = ["1", ["8", ["9", ["1"]]]].flat(Infinity);//4   ,    1   
    console.log(r); //>> [ '1', '8', '9', '1' ]
    

    次にflatMap()を見てみましょう
    let r;
    r = ["I love", "coffe 1891"].map(item => item.split(" "));
    console.log(r); //>> [ [ 'I', 'love' ], [ 'coffe', '1891' ] ]
    
    r = ["I love", "coffe 1891"].flatMap(item => item.split(" "));
    console.log(r); //>>[ 'I', 'love', 'coffe', '1891' ]