JavaScript 入門 flatMap の応用

flatMap は map と flat をまとめて行ってくれる便利な関数です。

これを利用することで filter とは逆の動きをすることが可能です。

つまり、要素を除去ではなく、追加できます。

例えば、文字列の配列があるとして、各要素の文字列が空なら除外し、3文字以上なら先頭3文字と残りの文字に分割したい場合に、以下のようにします。

const myData = ['apple', '', 'banana', 'grape'];

const result = myData.flatMap(d => d.length === 0 ? [] :d.length > 4 ? [d.substr(0, 3), d.substr(3)] : d);

console.log(result); // ["app", "le", "ban", "ana", "gra", "pe"]

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap