tech blog
JS 배열의 요소 순회하기 (for of, forEach,reduce)
FrontEnd 개발자 준비생 최현우
2023. 8. 13. 19:32
728x90
JS
for of
for of 는 배열의 요소를 하나씩 꺼내어 사용하는 방법을 말한다.
좀 더 어려운 말로 '배열의 각 요소를 순회하며 처리한다'로 표현할 수 있다.
(iterable 객체의 요소에 대해 반복하는 데 사용되는 반복문, 이번 글에서는 배열에 관해서만 설명하겠다.)
for of 의 기본 구문
for (let element of array) {
// element(요소)에 대한 작업 수행
}
for of 의 사용 예시
const fruits = [apple, banana, orange, kiwi, strawberry];
for (const fruit of fruits) {
console.log(fruit);
}
// 출력
// apple
// banana
// orange
// kiwi
// strawberry
for of 의 특징
1. 간결함 : 배열의 인덱스를 다룰 필요 없이 요소를 직접 다루므로 코드가 더 간결해진다.
2. breake와 continue 사용 : "break" 문을 사용하여 루프를 종료하거나 "continue" 문을 사용하여 현재 반복을 건너뛸 수 있다.
forEach
forEach는 배열의 각 요소에 대해 주어진 함수를 한 번씩 실행하는 메서드이다. 이를 통해 배열의 모든 요소에 접근하고 조작할 수 있다.
forEach 의 기본 구문
array.forEach(function(currentValue, index, array) {
// currentValue: 현재 처리 중인 요소의 값
// index: 현재 처리 중인 요소의 인덱스
// array: forEach를 호출한 배열 자체
// 여기서 실행할 작업을 작성
});
forEach 의 사용 예시
const fruits = [apple, banana, orange, kiwi, strawberry];
fruit.forEach(function(fruit, index) {
console.log(`Index ${index}: ${fruit}`);
});
//출력
//Index 0: apple
//Index 1: banana
//Index 2: orange
//Index 3: kiwi
//Index 4: strawberry
forEach 의 특징
1. 중단을 할 수 없다(return을 통한 종료 불가)
2. 반복 과정 중에 배열 요소를 변경 할 수 없음
reduce
reduce 메서드는 배열의 모든 요소를 순회하면서 주어진 함수를 사용하여 요소들을 하나의 값으로 축소(리듀스)하는 메서드이다. 이를 통해 배열의 요소들을 계산하여 최종 결과를 얻을 수 있다. reduce 메서드는 초기값(initial value)과 함께 사용된다.
reduce 의 기본 구문
array.reduce(function(accumulator, currentValue, index, array) {
// accumulator: 이전 단계까지의 누적된 결과 값
// currentValue: 현재 처리 중인 요소의 값
// index: 현재 처리 중인 요소의 인덱스
// array: reduce를 호출한 배열 자체
// 여기서 누적 작업을 수행하고 결과 값을 반환
}, initialValue(초기값));
reduce 의 사용 예시
const numbers = [1, 2, 3, 4, 5];
// accumulator : 이전 단계까지의 누적된 결과 값
// currentValue : 현재 처리 중인 요소의 값
const sum = numbers.reduce(function(accumulator, currentValue) {
return accumulator + currentValue;
}, 0);
console.log(sum); // 출력 결과: 15
위의 코드는 배열 numbers의 모든 요소를 합산하여 최종 결과 값을 반환한다. reduce 메서드의 초기값(0로 지정한)부터 시작하여 각 요소를 더해나가는 방식으로 합산이 된다.
추가조사
언제 사용하면 좋을지에 대해 조사해봤다.
for of
- 가장 일반적이고 전통적인 배열 순회 방식
- continue나 break를 사용해야 할 때 사용.
forEach
- for문보다 코드를 더 간결하게 작성가능(가독성이 더 좋음).
- 수행속도가 더 느림
- continue와 break 사용불가.
- 따라서, 서비스의 성능을 생각한다면 복잡하더라도 for문으로 구현하는게 좋을 것 같다는 생각이 들었음.
reduce
- 배열의 요소를 합치거나, 변형하여 새로운 값을 계산할 때 유용함