flatMap 
ネストされた配列の各要素を与えられたイテレータ関数でマッピングし、指定された深さまで平坦化します。
JavaScriptに組み込まれているArray#flatをArray#mapと組み合わせてmap(iteratee).flat(depth)として呼び出した場合と同じように動作しますが、より高速です。
インターフェース 
typescript
function flatMap<T, U, D extends number = 1>(arr: T[], iteratee: (item: T) => U, depth?: D): Array<FlatArray<U[], D>>;パラメータ 
- arr(- T[]): 平坦化するネストされた配列です。
- iteratee(- T[]): 各配列要素をマッピングする関数です。
- depth(- D): 平坦化する深さです。デフォルト値は1です。
戻り値 
(Array<FlatArray<U[], D>>): 各要素がマッピングされ、指定された深さまで平坦化された新しい配列です。
例 
typescript
const array = [1, 2, 3];
const result1 = flatMap(array, item => [item, item], 1);
// [1, 1, 2, 2, 3, 3]を返します。
const result2 = flatMap(array, item => [[item, item]], 2);
// [1, 1, 2, 2, 3, 3]を返します。
const result3 = flatMap(array, item => [[[item, item]]], 3);
// [1, 1, 2, 2, 3, 3]を返します。
