JavaScriptの配列型にはflatMapというメソッドがある。flatMapは同じく配列のメソッドmapとflatを連続して適用したのと同じ処理を一つのメソッドで行うものである。 [0, 10, 20].map(x => [x, x + 1]).flat(); // [0, 1, 10, 11, 20, 21] [0, 10, 20].flatMap(x => [x, x + 1]); // [0, 1, 10, 11, 20, 21] これflatMap要るか?別に2回に分けて書けばよくないか?配列には他にもreverseやfilterやreduceなどたくさんのメソッドがあるのに、なぜflatとmapだけはそれらを組み合わせたflatMapという専用メソッドがあるのか? それには理由がある。なぜならflatMapは関数型プログラミングにおいてとても重要で特別な関数だからである。