본문 바로가기

자바스크립트/재귀함수

자바스크립트 재귀 함수 예제 - 다중 배열 한 배열로 바꾸기

let arr = [1, 2, [3, 4, [5, 6], 7, 8], 9, 10];

function convertOneArray(arr) {
    let newArr = [];
    function recursion(arr) {
        for(let i = 0; i < arr.length; i++) {

            // 값이 배열이면 recursion 함수를 다시 호출한다.
            if(Array.isArray(arr[i])) {
                recursion(arr[i]);

            // 값이 일반적인 숫자면 newArr 배열에 추가한다.
            } else {
                newArr.push(arr[i]);   
            }
        }
    }
    recursion(arr);
    return newArr;
}


console.log(getOneArray(arr)); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

 

// 재귀 함수는 너무 헷갈린다.

// 많이 접해봐서 이런 때 이렇게 쓴다는 패턴을 기억해야 할 것 같다.