Front/JS & jQuery

[js] 재귀함수로 배열 평탄화 2

오선지♬ 2024. 12. 8. 13:13
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