map
과 reduce
는 JavaScript에서 배열을 변형하고 처리하기 위해 사용되는 고차 함수입니다. 그러나 두 함수의 목적과 사용법은 약간 다릅니다.
1. map
:
map
함수는 주어진 배열의 각 요소에 대해 콜백 함수를 호출하고, 각 콜백 함수의 반환 값을 모아 새로운 배열을 생성합니다.map
함수는 원본 배열과 동일한 길이의 새로운 배열을 반환합니다.map
함수는 원본 배열을 변경하지 않고 각 요소를 변형하고자 할 때 사용됩니다.예시:
const numbers = [1, 2, 3, 4, 5];
const squaredNumbers = numbers.map((num) => num * num);
console.log(squaredNumbers); // 출력: [1, 4, 9, 16, 25]
2. reduce
:
reduce
함수는 주어진 배열의 각 요소에 대해 콜백 함수를 호출하고, 콜백 함수의 반환 값을 누적하여 최종 결과를 반환합니다.reduce
함수는 초기 누적값(initial accumulator value)을 설정하고, 배열의 요소를 차례로 처리하며 누적값을 업데이트합니다.reduce
함수는 배열을 단일 값으로 축소하고자 할 때 사용됩니다.예시:
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((acc, num) => acc + num, 0);
console.log(sum); // 출력: 15
주의할 점:
reduce
함수는 초기 누적값을 설정해야 합니다. 위의 예시에서 초기 누적값으로 0
을 사용했습니다.reduce
함수의 두 번째 인수로 초기 누적값을 전달하지 않으면 배열의 첫 번째 요소가 초기 누적값이 됩니다.map
과 reduce
는 서로 다른 용도를 가지고 있습니다. map
은 각 요소를 변형하여 새로운 배열을 생성하고, reduce
는 배열을 단일 값으로 축소하는 데 사용됩니다. 따라서 사용 목적에 맞게 적절한 함수를 선택하여 사용해야 합니다.