티스토리 뷰
728x90
반응형
reduce
- 배열의 모든원소를 활용하여 한줄로 연산이 가능하다.
- 한꺼번에 처리할 수 있어서 매우 유용한 연산자다. 알면좋다.
reduce 예제 1 - sum 연산으로 forEach문과 비교
forEach 반복문을 사용했을 때
console.clear();
const numbers = [ 1,2,3,4,5 ];
let sum = 0;
numbers.forEach( n => {
sum += n;
});
console.log(sum); // 15
reduce를 사용했을 때
- 아주 간단하다 3줄이 한줄로 줄여진다.
- arrayName.reduce( (누적값, 현재값) => 내부연산 , 초기 누적값 ); 으로 구성되어 있다.
- acc는 accumulator의 약자로, 누적값을 의미한다.
- curr은 current의 약자로, 현재 배열의 원소 값을 의미한다.
- 인덱스 0부터 반복이 시작된다.
console.clear();
const numbers = [1,2,3,4,5];
const sum = numbers.reduce( (acc,curr) => acc + curr , 0 );
console.log(sum); // 15
reduce 예제 2 - 평균 구하기
- 사용배열.reduce( (누적값, 현재값, 현재인덱스, 사용배열) => 내부연산 , 초기 누적값 ); 으로 구성되어 있다.
- 무조건 누적값을 리턴해야한다. 그래야 다음 누적계산을 할 때 리턴한 누적값이 사용되기 때문이다.
console.clear();
const numbers = [1, 2, 3, 4, 5];
const avg = numbers.reduce((acc, current, index, array) => {
if (index === numbers.length - 1) {
return (acc + current) / array.length;
}
return acc + current;
}, 0);
console.log(avg); // 3
reduce 예제 3 - 중복되는 문자 카운트 하기
- 초기 acc를 0이 아닌 비어있는 객체로 하였다.
console.clear();
const alphabets = ["a", "b", "a", "a", "c", "d", "e", "b", "c", "c", "d"];
const countsAlphabet = alphabets.reduce((acc, current) => {
if (acc[current]) {
acc[current] += 1;
} else {
acc[current] = 1;
}
return acc;
}, {});
console.log(countsAlphabet);
728x90
반응형
'Backend > Typescript & Angular' 카테고리의 다른 글
삼항연산자 (0) | 2021.09.26 |
---|---|
프로토타입과 클래스 (0) | 2021.09.09 |
shift/unshift & push/pop & concat & join (0) | 2021.08.28 |
splice & slice (0) | 2021.08.27 |
배열 내장함수 - forEach/ map/indexOf/find/findIndex (1) | 2021.08.25 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 바이트디그리
- 스마트폰중독
- 클린아키텍쳐
- RDBMS
- git
- gem
- 디지털디톡스
- Mongoose
- Jekyll
- TypeScript
- Nest.js
- 참고
- OS
- nestjs
- 한달어스
- typeORM
- node.js
- 한달독서
- jest
- 갓생살자
- 습관개선
- 개발용어
- nestjs jest
- IT용어
- MongoDB
- 미완
- MySQL
- TDD
- vscode
- 나도 할 수 있다
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
글 보관함