reduce 메서드는 배열의 모든 요소를 단일 값으로 합치거나 누적할 때 유용합니다.
reduce 는 map 함수처럼 배열의 모든 요소를 루프 돈다.
영어 단어의 뜻처럼 간단하게 줄여서라는 의미로 좀더 간단하게 처리할 수 있다.
특징은 배열 요소를 한번씩 돌때, 반환된 값을 다음 루프에서 확인 할 수 있다.
기본문법
2개의 기본 매개 변수와 2개의 추가 매개 변수(옵션)
array.reduce(callback(accumulator, currentValue[, index[, array]])[, initalValue])
arrumulator : 콜백의 반환값을 누적함 -> 이전 콜백 함수의 반환값
currentValue : 현재의 배열요소.
index (옵션) : 배열의 인텍스값.
array (옵션) : reduce 를 실행하는 배열변수
initalValue : 콜백 함수 최초 실행 시 accumulator 의 초기값을 지정할 수 있다. 기본값을 지정하지 않으면 배열의 첫번째 값을 초기값으로 하고 첫 번째 요소는 건너뜁니다.
기본코드
누적값, 배열 요소 2개만 사용해서
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((acc, curr) => acc + curr, 0);
console.log(sum); // 15
index, array 추가 사용
const numbers = [1, 2, 3, 4, 5];
const average = numbers.reduce((acc, curr, index, array) => {
acc += curr;
// 배열의 마지막에서 평균값을 반환
if (index === array.length - 1) {
return acc / array.length;
}
// 배열 누적값
return acc;
}, 0);
console.log(average); // 3
배열의 중복값 제거해서 반환하기
const items = ['apple', 'orange', 'apple', 'banana', 'orange'];
const uniqueItems = items.reduce((acc, curr) => {
if (!acc.includes(curr)) {
acc.push(curr);
}
return acc;
}, []);
console.log(uniqueItems); // ['apple', 'orange', 'banana']
'프로그래밍 > JavaScript' 카테고리의 다른 글
ES6 > Spread Operator ... 점3개 > 펼침연산자 (0) | 2024.12.04 |
---|---|
Javascript > window 객체 > 객체 생성하기 > 개념정리 (0) | 2024.10.09 |
JavaScript > ES6 > Arrow Functions (화살표 함수에 대해서) (0) | 2024.07.30 |
이전페이지로 복귀 후 스크롤 위치 복원하기 (0) | 2024.06.25 |
자바스크립트 비동기 실행을 위한 라이브러리 Axios (0) | 2022.07.26 |