728x90
문제
수(num)와 배열을 입력받아 차례대로 num개의 요소가 제거된 새로운 배열을 리턴해야 합니다.
입력
let output = drop(2, [1, -2, 1, 3]);
console.log(output); // --> [1, 3]
output = drop(5, [1, -2, 1, 3]);
console.log(output); // --> [ ]
function drop(num, arr) {
// TODO: 여기에 코드를 작성합니다.
// num이 arr.length보다 길면 빈배열 리턴
// 그렇지 않으면 재귀함수로 num-1씩 배열은 첫번째 값을 빼고 나머지 값을 배열로 넣어준다.
if(num === 0){
return arr
}
if(num > arr.length){
return []
}
return drop(num-1, arr.slice(1))
// arr.slice(1) 는 let [first, ...lest] ===arr
}
function drop(num, arr) {
// if (num >= arr.length) {
// return [];
// }
if (num === 0 || arr.length === 0) {
return arr;
}
// const [head, ...tail] = arr;
const tail = arr.slice(1);
return drop(num - 1, tail);
}
728x90
'코플릿 > 재귀' 카테고리의 다른 글
06_arrProduct (0) | 2021.11.04 |
---|---|
07_arrLength (0) | 2021.11.04 |
09_take (0) | 2021.10.31 |
11_or (0) | 2021.10.31 |
12_reverseArr (0) | 2021.10.31 |