Today’s Key 🔑


추가로 공부하자 🔥


자꾸자꾸 보고 적고 직접 치면서 늘어나는 javascript 상식! (으쌰!) 🚀

고민을 요했던 재귀 함수 관련 코플릿 문제를 몇 가지 정리하고자 한다. 같이 문제를 풀었던 페어님의 미친 실력이 동반했다. (감사합니다.)


코플릿 재귀 문제 정리 01. 숫자와 배열이 주어지는 함수에서 숫자 만큼의 배열 인덱스 앞에 부분을 저장하라.

function take(num, arr) {
   // num이 0이면 arr의 아무것도 저장할 수 없다.
   // 배열의 길이가 0이면 아무것도 저장할 수 없다.
   // num이 배열의 길이보다 크거나 같으면 배열 자체를 뱉어라.
   if (num === 0 || arr.length === 0) {
      return [];
   } else if (num >= arr.length) {
      return arr
   }

   // 모든 조건이 아니면 배열의 맨 뒷요소는 pop()
   arr.pop()
   // 그리고 반복적으로 검증하기 위해서 다시 순환 > 재귀!
   return take(num, arr)

   // arr의 길이를 점점 줄여가고, 배열의 요소를 없앤다.
   // 반복하여 순환하다가 배열의 길이와 num이 같아지는 순간!
   // return arr!
}


코플릿 재귀 문제 정리 01. true, false 로 주어지는 배열의 논리곱을 만들어라!

function and(arr) {
   // 빈 배열은 true 
   if (arr.length === 0) {
      return true;
   } else if (arr[0] === false) {
      // 하나라도 false 면 그냥 false;
      return false;
   }

   // 첫 인자가 true라면! 재귀로 다음 요소부터 체크
   // 모두 true가 들어서 배열의 길이가 0이 된다면 > true!
   return and(arr.slice(1))
}