@@ -567,34 +567,6 @@ const newArray = ["X", ...array, "Z"];
567567console .log (newArray); // => ["X", "A", "B", "C", "Z"]
568568```
569569
570- ## [ ES2019] 配列をフラット化 {#flat}
571-
572- Arrayの` flat ` メソッド<sup >[ ES2019] </sup >を使うことで、多次元配列をフラットな配列に変換できます。
573- 引数を指定しなかった場合は1段階のみのフラット化ですが、引数に渡す数値でフラット化する深さを指定できます。
574- 配列をすべてフラット化する場合には、無限を意味する` Infinity ` を値として渡すことで実現できます。
575-
576- {{book.console}}
577- <!-- doctest:meta:{ "ECMAScript": "2019" } -->
578- ``` js
579- const array = [[[" A" ], " B" ], " C" ];
580- // 引数なしは1を指定した場合と同じ
581- console .log (array .flat ()); // => [["A"], "B", "C"]
582- console .log (array .flat (1 )); // => [["A"], "B", "C"]
583- console .log (array .flat (2 )); // => ["A", "B", "C"]
584- // すべてをフラット化するにはInfinityを渡す
585- console .log (array .flat (Infinity )); // => ["A", "B", "C"]
586- ```
587-
588- また、Arrayの` flat ` メソッドは必ず新しい配列を作成して返すメソッドです。
589- そのため、これ以上フラット化できない配列をフラット化しても、同じ要素を持つ新しい配列を返します。
590-
591- {{book.console}}
592- <!-- doctest:meta:{ "ECMAScript": "2019" } -->
593- ``` js
594- const array = [" A" , " B" , " C" ];
595- console .log (array .flat ()); // => ["A", "B", "C"]
596- ```
597-
598570## 配列から要素を削除 {#delete-element}
599571
600572### ` Array.prototype.splice ` {#splice}
@@ -999,6 +971,52 @@ function sum(array) {
999971console .log (sum (array)); // => 6
1000972```
1001973
974+ ### [ ES2019] ` Array.prototype.flat ` メソッド {#flat}
975+
976+ Arrayの` flat ` メソッド<sup >[ ES2019] </sup >を使うことで、多次元配列をフラットな配列に変換できます。
977+ 引数を指定しなかった場合は1段階のみのフラット化ですが、引数に渡す数値でフラット化する深さを指定できます。
978+ 配列をすべてフラット化する場合には、無限を意味する` Infinity ` を値として渡すことで実現できます。
979+
980+ {{book.console}}
981+ <!-- doctest:meta:{ "ECMAScript": "2019" } -->
982+ ``` js
983+ const array = [[[" A" ], " B" ], " C" ];
984+ // 引数なしは1を指定した場合と同じ
985+ console .log (array .flat ()); // => [["A"], "B", "C"]
986+ console .log (array .flat (1 )); // => [["A"], "B", "C"]
987+ console .log (array .flat (2 )); // => ["A", "B", "C"]
988+ // すべてをフラット化するにはInfinityを渡す
989+ console .log (array .flat (Infinity )); // => ["A", "B", "C"]
990+ ```
991+
992+ また、Arrayの` flat ` メソッドは必ず新しい配列を作成して返すメソッドです。
993+ そのため、これ以上フラット化できない配列をフラット化しても、同じ要素を持つ新しい配列を返します。
994+
995+ {{book.console}}
996+ <!-- doctest:meta:{ "ECMAScript": "2019" } -->
997+ ``` js
998+ const array = [" A" , " B" , " C" ];
999+ console .log (array .flat ()); // => ["A", "B", "C"]
1000+ ```
1001+
1002+ ### [ ES2019] ` Array.prototype.flatMap ` メソッド {#array-flatmap}
1003+
1004+ Arrayの` flatMap ` メソッド<sup >[ ES2019] </sup >は、配列の各要素に対してコールバック関数を適用し、その結果を1段階フラット化した新しい配列を返します。
1005+ つまり、` flatMap ` メソッドは、` map ` してから` flat(1) ` するのと同じ結果になります。
1006+
1007+ ` flatMap ` メソッドのコールバック関数には` map ` メソッドと同様に` 要素, インデックス, 配列 ` が引数として渡されます。
1008+
1009+ {{book.console}}
1010+ <!-- doctest:meta:{ "ECMAScript": "2019" } -->
1011+ ``` js
1012+ const array = [1 , 2 , 3 ];
1013+ // 各要素を2倍にしてから、その値を配列として返す
1014+ const doubled = array .flatMap ((value ) => {
1015+ return [value, value * 2 ];
1016+ });
1017+ console .log (doubled); // => [1, 2, 2, 4, 3, 6]
1018+ ```
1019+
10021020### [ ES2024] ` Object.groupBy ` 静的メソッド {#object-group-by}
10031021
10041022` Array.prototype.reduce ` メソッドを使うことで、配列から数値やオブジェクトなど任意の値を作成できます。
0 commit comments