문제

  • n부터 1까지 연속된 수로 반환한다. (역순)

풀이 01

function reverseSequence(n) {
  let result = [];

  for (let i = n; i > 0; i--) {
    result.push(i);
  }
  return result;
}

reverseSequence(4);  // [4, 3, 2, 1]
reverseSequence(5);  // [5, 4, 3, 2, 1]
  • push(): 배열의 끝에 새 element를 추가하고, 새로운 길이를 반환한다.

풀이 02

function reverseSequence(n) {
  return n === 1 ? [n] : [n].concat(reverseSequence(n - 1));
}

reverseSequence(4);  // [4, 3, 2, 1]
reverseSequence(5);  // [5, 4, 3, 2, 1]
  • concat(): 두 개 이상의 배열을 결합하고, 새 배열을 반환한다.

풀이 03

function reverseSequence(n) {
  return n === 1 ? [n] : [n, ...reverseSequence(n - 1)];
}

reverseSequence(4);  // [4, 3, 2, 1]
reverseSequence(5);  // [5, 4, 3, 2, 1]