라이브러리
[JAVASCRIPT] arr.reduce(callback, initialValue) - 누적 연산을 수행하여 단일 값 반환
reduce() 메서드란?
JavaScript의 Array.prototype.reduce() 메서드는 배열의 각 요소를 처리하여 하나의 결과값을 반환하는 메서드입니다. 이 메서드는 callback 함수를 한 번씩 호출하여 배열의 각 요소를 처리하고, 이전 결과와 현재 요소를 조합하여 새로운 결과를 반환합니다.
reduce() 메서드의 인자
reduce() 메서드는 두 개의 인자를 받습니다.
- callback: 각 요소를 처리하는 함수입니다. 이 함수는 이전 결과와 현재 요소를 인자로 받습니다.
- initialValue: 초기값입니다. callback 함수가 호출되기 전에 초기값이 필요할 때 사용됩니다.
reduce() 메서드의 사용법
reduce() 메서드는 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
javascript
arr.reduce(callback, initialValue)
예제 1: 숫자의 합
#hostingforum.kr
javascript
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((acc, current) => acc + current, 0);
console.log(sum); // 15
이 예제에서는 callback 함수는 `acc + current`를 반환합니다. `acc`는 이전 결과이고, `current`는 현재 요소입니다. 초기값 `0`은 callback 함수가 호출되기 전에 초기값이 필요할 때 사용됩니다.
예제 2: 문자열의 연결
#hostingforum.kr
javascript
const strings = ['Hello', ' ', 'World'];
const result = strings.reduce((acc, current) => acc + current, '');
console.log(result); // 'Hello World'
이 예제에서는 callback 함수는 `acc + current`를 반환합니다. `acc`는 이전 결과이고, `current`는 현재 요소입니다. 초기값 `''`은 callback 함수가 호출되기 전에 초기값이 필요할 때 사용됩니다.
예제 3: 객체의 합
#hostingforum.kr
javascript
const objects = [
{ name: 'John', age: 25 },
{ name: 'Jane', age: 30 },
{ name: 'Bob', age: 35 }
];
const result = objects.reduce((acc, current) => {
acc[current.name] = current.age;
return acc;
}, {});
console.log(result); // { John: 25, Jane: 30, Bob: 35 }
이 예제에서는 callback 함수는 `acc[current.name] = current.age`를 반환합니다. `acc`는 이전 결과이고, `current`는 현재 요소입니다. 초기값 `{}`은 callback 함수가 호출되기 전에 초기값이 필요할 때 사용됩니다.
예제 4: 배열의 중복 제거
#hostingforum.kr
javascript
const arr = [1, 2, 2, 3, 4, 4, 5];
const result = arr.reduce((acc, current) => {
if (!acc.includes(current)) {
acc.push(current);
}
return acc;
}, []);
console.log(result); // [1, 2, 3, 4, 5]
이 예제에서는 callback 함수는 `acc.includes(current)`를 반환합니다. `acc`는 이전 결과이고, `current`는 현재 요소입니다. 초기값 `[]`은 callback 함수가 호출되기 전에 초기값이 필요할 때 사용됩니다.
결론
reduce() 메서드는 배열의 각 요소를 처리하여 하나의 결과값을 반환하는 메서드입니다. 이 메서드는 callback 함수와 초기값을 인자로 받으며, callback 함수는 이전 결과와 현재 요소를 조합하여 새로운 결과를 반환합니다. reduce() 메서드는 다양한 예제를 통해 사용할 수 있으며, 배열의 합, 문자열의 연결, 객체의 합, 배열의 중복 제거와 같은 다양한 사용 사례가 있습니다.
댓글목록
등록된 댓글이 없습니다.