FEDev Story

배열을 역순으로 순회하고 싶다면? 본문

Javascript

배열을 역순으로 순회하고 싶다면?

지구별72 2025. 4. 23. 21:01

forEach 메서드는 배열의 처음부터 끝까지 순서대로만 동작하도록 설계되어 있어서, 뒤에서부터 순회하는 기능은 지원하지 않아요.

하지만 대신, for 루프를 사용해서 **역순(forEach처럼 동작)**할 수 있어요.

✅ 역순으로 배열 순회하는 방법

const arr = [1, 23, 4];

for (let i = arr.length - 1; i >= 0; i--) {
  const num = arr[i];
  console.log(num); // 4, 23, 1 순서로 출력
}

❗️forEach처럼 콜백을 쓰고 싶다면?

const arr = [1, 23, 4];

arr.slice().reverse().forEach((num) => {
  console.log(num); // 4, 23, 1
});

설명:

  • slice()는 원본 배열을 복사합니다 (원본 배열을 변경하지 않기 위해).
  • reverse()로 복사한 배열의 순서를 뒤집고,
  • 그 배열에 대해 forEach()를 적용합니다.

💡 한 줄 팁:

[...arr].reverse().forEach(num => console.log(num));

원본 배열을 건드리지 않으면서 forEach 느낌 그대로 역순 순회하고 싶을 때 유용해요.

✅ 역순으로 callback을 실행하는 forEach 함수

function forEachReverse(array, callback) {
  for (let i = array.length - 1; i >= 0; i--) {
    callback(array[i], i, array);
  }
}

🧪 사용 예시:

const arr = [1, 23, 4];

forEachReverse(arr, (num, index) => {
  console.log(`인덱스 ${index} 값: ${num}`);
});

// 출력:
// 인덱스 2 값: 4
// 인덱스 1 값: 23
// 인덱스 0 값: 1

📌 함수 설명:

  • array: 순회할 배열
  • callback: (element, index, array) 형식의 콜백 함수
  • 순회는 마지막 인덱스부터 0까지 진행돼요
Comments