JavaScriptの2次元配列を.flat()で平坦化
flat()
const twoDimensionsArray = [[1a, 1b, 1c], [2a, 2b, 2c], [3a, 3b, 3c]]
twoDimensionsArray.flat()
=> ['1a', '1b', '1c', '2a', '2b', '2c', '3a', '3b', '3c']
flatMap()
flatMap()を使うと、
オブジェクトの配列内にある配列の平坦な連想配列を作れる
const twoDimensionsObjArray = [
{
key: 1,
value: 'aaa',
array: [
{ aryKey: 10, aryVal: 'a' },
{ aryKey: 20, aryVal: 'b' }
]
},
{
key: 2,
value: 'bbb',
array: [
{ aryKey: 30, aryVal: 'c' },
{ aryKey: 40, aryVal: 'd' }
]
}
]
twoDimensionsObjArray.flatMap((obj)=>obj.array)
=>
[
{ aryKey: 10, aryVal: 'a' },
{ aryKey: 20, aryVal: 'b' },
{ aryKey: 30, aryVal: 'c' },
{ aryKey: 40, aryVal: 'd' }
]
map()とflat()をそれぞれ実行しても同じ
const twoDimensionsObjArray = [
{
key: 1,
value: 'aaa',
array: [
{ aryKey: 10, aryVal: 'a' },
{ aryKey: 20, aryVal: 'b' }
]
},
{
key: 2,
value: 'bbb',
array: [
{ aryKey: 30, aryVal: 'c' },
{ aryKey: 40, aryVal: 'd' }
]
}
]
const mappedArray = twoDimensionsObjArray.map((obj)=>obj.array)
=>
[
[ { aryKey: 10, aryVal: 'a' }, { aryKey: 20, aryVal: 'b' } ],
[ { aryKey: 30, aryVal: 'c' }, { aryKey: 40, aryVal: 'd' } ]
]
mappedArray.flat()
=>
[
{ aryKey: 10, aryVal: 'a' },
{ aryKey: 20, aryVal: 'b' },
{ aryKey: 30, aryVal: 'c' },
{ aryKey: 40, aryVal: 'd' }
]