let arr = [1,[2,3,[4,5]]];
// 다차원 배열인 arr를 뒤집어 [[[5,4],3,2],1]로 만들기
function reverseMultiDimensionalArray(arr) {
let result = [];
for (let i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i])) {
result.push(reverseMultiDimensionalArray(arr[i]));
} else {
result.push(arr[i]);
}
}
return result.reverse();
}
let reverseArr = reverseMultiDimensionalArray(arr);
console.log(reverseArr); // [[[5, 4], 3, 2], 1]
이 함수에선 재귀 호출의 종료조건을 명시하지 않았기 때문에 입력으로 주어진 배열의 크기에 상관없이 항상 재귀 호출 수행.
이 경우 배열의 깊이가 매우 깊을 경우 스택오버플로가 발생할 가능성이 있으므로 입력으로 주어진 배열의 크기에 따라 적절한 종료 조건을 설정해주는 것이 좋음.