728x90
반응형
이 방식은 while루프와 Array.prototype.some() 방법을 결합하여 배열을 평탄화
function flatten(arr) {
while (arr.some(el => Array.isArray(el))) {
arr = [].concat(...arr);
}
return arr;
}
let nestedArray = [1, [2, 3], [4, [5, 6]]];
let flatArray = flatten(nestedArray);
console.log(flatArray);
// [1, 2, 3, 4, 5, 6]
- Array.prototype.some():
- 배열 요소 중 하나라도 조건( Array.isArray(el))을 만족하면 true반환합니다.
- 즉, 현재 배열에서 배열이 확인되는지 확인합니다.
- [].concat(...arr):
- 불편한 위치( ...)를 꺼내고 arr나서 의 각 요소를 펼치고, concat을 돌려 한 단계 평탄화합니다.
- while루프 :
- 배열에 Array.isArray(el)남아있을 때 배열까지( ) 있을 때 반복됩니다.
- 반복적인 배열마다 한 단계씩 규칙입니다.
- 반복이 종료되면, 모든 배열이 제거되고 1차원 배열이 반환됩니다.
728x90
반응형
'Front > JS & jQuery' 카테고리의 다른 글
[js] ! 연산자 사용 주의사항 (0) | 2024.12.10 |
---|---|
[js] every() (0) | 2024.12.09 |
[js] 재귀함수로 배열 평탄화 (0) | 2024.12.07 |
[js] 배열 평탄화 flat() (0) | 2024.12.06 |
[jQuery] $.map으로 배열 평탄화하기 (0) | 2024.12.05 |