flat()
메서드에 Infinity
인자가 주어지면
하나의 배열만 남기고 모든 배열들을 평탄화 하게된다.
let arr = [[0,[1],[2,[3,[6],[13,[16],[17],[19]],[14]],[4,[12]],[5,[7,[10,[15]]],[8],[18]],[9,[11]]]]]
console.log(arr.flat(Infinity));
// 결과 [
0, 1, 2, 3, 6, 13, 16,
17, 19, 14, 4, 12, 5, 7,
10, 15, 8, 18, 9, 11
]
const arr = [[0,[1],[2,[3,[6],[13,[16],[17],[19]],[14]],[4,[12]],[5,[7,[10,[15]]],[8],[18]],[9,[11]]]]]
function flatArr(input) {
return input.reduce((inputArr , inputToFlat) => {
return inputArr.concat(
Array.isArray(inputToFlat) ? flatArr(inputToFlat) : inputToFlat
)
},[])
}
console.log(flatArr(arr));
// 결과 [
0, 1, 2, 3, 6, 13, 16,
17, 19, 14, 4, 12, 5, 7,
10, 15, 8, 18, 9, 11
]
Array.isArray(inputToFlat)
배열이라면flatArr(inputToFlat)
inputArr.concat()