재귀

tnsdlznf23·2023년 4월 12일
0

재귀 #1

function sumTo(num) {
  if (num <= 1) {
    return num;
    //만약 num 이 1 이하이면 num을 반환한다.
  }

  return num + sumTo(num - 1);
  //그렇지 않으면 num과 sumTo(num - 1)의 합을 반환한다.
}

재귀 #2

function unpackGiftbox(giftBox, wish) {
  for (let i = 0; i < giftBox.length; i++) { //giftBox 배열을 반복
    const item = giftBox[i];
    if (typeof item === 'string') { //현재 요소가 문자열이고
      if (item === wish) { //wish와 같으면 true를 반환한다.
        return true;
      }
    } else if (Array.isArray(item)) { //현재 요소가 배열이면
      if (unpackGiftbox(item, wish)) {
        return true; //unpackGiftbox 함수에 현재 요소와 wish를 인자로 넘겨 재귀적으로 호출한다. 반환된 결과가 true이면 true를 반환한다.
      }
    }
  }
  return false; //모든 요소를 반복한 후, true가 반환되지 않았다면 false를 반환한다.
}
profile
프론트엔드 개발 기록장

0개의 댓글