0. reduce 란?
array.reduce((accumulator, currentValue) => {
// 콜백 함수 내용
}, initialValue);
reduce() 는 배열의 모든 요소를 하나로 축소하는 데 사용하는 메서드이다.
배열을 합치거나, 필터링하거나, 특정 조건을 만족하는 값을 찾을 때 유용하다.
accumulator (누적값): 배열의 요소들을 하나씩 처리하면서 누적되는 값. 처음에는 initialValue로 시작해.
currentValue (현재값): 배열에서 순차적으로 처리되는 각 요소.
initialValue(초기값): 누적값이 시작하는 초기값 (옵션, 생략 가능).
결과값: 배열을 모두 처리한 후 최종적으로 하나의 값이 반환됨.
첫번째 요소부터 마지막 요소까지 차례대로 순회하며 accumulator 값을 갱신한다.
마지막에 최종적으로 누적된 값을 반환한다.
※ 주의점
1. 초기값을 설정하지 않으면, 자동으로 초기값은 배열의 첫 번째 요소가 되고, 두 번째 요소부터 시작한다.
2. 배열이 비어있고 초기값이 제공되지 않으면 에러가 발생한다.
예시1) 배열의 합 구하기
const numbers = [1, 2, 3, 4];
const sum = numbers.reduce((acc, value) => acc + value, 0);
console.log(sum); // 출력: 10
예시2) 배열에서 가장 큰 숫자 찾기
const numbers = [1, 5, 3, 9, 2];
const max = numbers.reduce((acc, value) =>
return currentValue > acc ? value : acc;
}, numbers[0]);
console.log(max); // 출력: 9
예시3) 배열에서 가장 긴 단어 찾기
const words = ["apple", "banana", "kiwi"];
const longestWord = words.reduce((a, b) => (a.length > b.length ? a : b));
console.log(longestWord); // 출력: "banana"
예시4) 배열의 평균 구하기
const numbers = [1, 2, 3, 4, 5];
const average = numbers.reduce((acc, currentValue, index, array) => {
acc += currentValue;
if (index === array.length - 1) {
return acc / array.length;
}
return acc;
}, 0);
console.log(average); // 출력: 3
index : 현재 요소의 인덱스
array : 원본 배열
0. reduce 란?
array.reduce((accumulator, currentValue) => {
// 콜백 함수 내용
}, initialValue);
reduce() 는 배열의 모든 요소를 하나로 축소하는 데 사용하는 메서드이다.
배열을 합치거나, 필터링하거나, 특정 조건을 만족하는 값을 찾을 때 유용하다.
accumulator (누적값): 배열의 요소들을 하나씩 처리하면서 누적되는 값. 처음에는 initialValue로 시작해.
currentValue (현재값): 배열에서 순차적으로 처리되는 각 요소.
initialValue(초기값): 누적값이 시작하는 초기값 (옵션, 생략 가능).
결과값: 배열을 모두 처리한 후 최종적으로 하나의 값이 반환됨.
첫번째 요소부터 마지막 요소까지 차례대로 순회하며 accumulator 값을 갱신한다.
마지막에 최종적으로 누적된 값을 반환한다.
※ 주의점
1. 초기값을 설정하지 않으면, 자동으로 초기값은 배열의 첫 번째 요소가 되고, 두 번째 요소부터 시작한다.
2. 배열이 비어있고 초기값이 제공되지 않으면 에러가 발생한다.
예시1) 배열의 합 구하기
const numbers = [1, 2, 3, 4];
const sum = numbers.reduce((acc, value) => acc + value, 0);
console.log(sum); // 출력: 10
예시2) 배열에서 가장 큰 숫자 찾기
const numbers = [1, 5, 3, 9, 2];
const max = numbers.reduce((acc, value) =>
return currentValue > acc ? value : acc;
}, numbers[0]);
console.log(max); // 출력: 9
예시3) 배열에서 가장 긴 단어 찾기
const words = ["apple", "banana", "kiwi"];
const longestWord = words.reduce((a, b) => (a.length > b.length ? a : b));
console.log(longestWord); // 출력: "banana"
예시4) 배열의 평균 구하기
const numbers = [1, 2, 3, 4, 5];
const average = numbers.reduce((acc, currentValue, index, array) => {
acc += currentValue;
if (index === array.length - 1) {
return acc / array.length;
}
return acc;
}, 0);
console.log(average); // 출력: 3
index : 현재 요소의 인덱스
array : 원본 배열