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