첫 번째 예제
function flattenArray(array) {
return array.reduce((result, x) => result.concat(
Array.isArray(x) ? flattenArray(x) : x), [])
}
두 번째 예제
mixedArray = [1, 2, [3, 4], [[5, 6], 7], 8, 9];
function flattenArray(array) {
return array.reduce((flat, val) => {
if(typeof val !== "number") {
return [...flat, ...flattenArray(val)];
} else {
return [...flat, val];
}
},[]);
}
위 코드를 if ... else
대신 삼항 연산자를 사용할 수 있다.
mixedArray = [1, 2, [3, 4], [[5, 6], 7], 8, 9];
const flattenArray = array =>
array.reduce( (flat, val) =>
[...flat, ...(Array.isArray(val) ? flattenArray(val) : [val])]
, []);