코플릿/재귀

08_drop

테오구 2021. 10. 31. 13:44
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