문제
배열을 입력받아 순서가 뒤집힌 배열을 리턴해야 합니다.
입력
arr : 임의의 요소를 갖는 배열
출력
순서가 뒤집힌 배열을 리턴해야 합니다.
[arr[n-1], arr[n-2], ... , arr[0]]
arr.length는 n
입출력 예시
let output = reverseArr([1, 2, 3]);
console.log(output); // --> [3, 2, 1]
풀이코드 설명
function reverseArr(arr) {
//배열의 길이가 0이면 빈 배열 반환
if (arr.length === 0){
return [];
}
//배열의 첫번째 요소는 head 지정
//배열의 두번째 요소부터 마지막까지 tail 지정
const head = arr[0];
const tail = arr.slice(1);
//재귀함수 호출 tail에다가 head를 뒤에서 붙임으로써 재귀 호출 및 순서가 뒤집힌 배열 출력
//concat은 메서드를 호출한 배열 뒤에 각 인수를 순서대로 붙여 새로운 배열을 만듬
// 인수가 배열이면 그 구성요소가 순서대로 붙고, 배열이 아니면 인수 자체가 붙음
return reverseArr(tail).concat(head);
}
풀이코드에 쓰인개념
Array.prototype.concat()
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/concat
Array.prototype.slice()
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/slice
Javascript 재귀 함수문제(8) - flattenArr (0) | 2022.12.11 |
---|---|
Javascript 재귀 함수문제(7) - findMatryoshka (0) | 2022.12.11 |
Javascript 재귀 함수문제(5) - and (0) | 2022.12.11 |
Javascript 재귀 함수문제(4) - take (0) | 2022.12.11 |
Javascript 재귀 함수문제(3) - drop (0) | 2022.12.11 |