JS
자바스크립트 배열 메소드 reduce 기초다지기
Okguri
2022. 5. 26. 17:45
자바스크립트 배열 메소드 reduce
parameter
- 누산값(prev) : initialValues가 있다면 초기값은 initialValues, 없으면 배열의 첫 번째 값. 초기값이 없을 경우 인덱스 1에서 루프를 싲가한다.
- 현재값(cur) : 루프를 돌면서 만나는 배열의 각 요소. 현재 요소를 칭함,
- 현재 인덱스
- 원본 배열
return
누적 계산의 결과값. 배열/숫자 등 다양한 타입 반환 가능.
초기값과 return 값의 타입을 맞춰야 한다. 예를 들어 초기값이 정수였으면 반환값도 정수.
arr.reduce((prev, cur)=>{
return ;
},[initialValues])
- 초기값 주는 것을 권장. 빈 배열 && 초기값 없을 경우 TypeError가 발생한다.
- 특히 배열의 원소가 객체로 이뤄져 있고, 그 객체 안의 값을 합산하려면 반드시 초기값을 설정해줘야 한다.
const list = [
{name: 'mike', age:19 },
{name: 'nancy', age:39 },
{name: 'ann', age:20 },
]
//초기값 없을 경우
list.reduce((prev, cur)=>{
if(cur.age>19){
prev+=cur.age ;
}
return prev;
})
return ---> '[object Object]3920'
//초기값 있을 때
list.reduce((prev, cur)=>{
if(cur.age>19){
prev+=cur.age ;
}
return prev;
},0)
return ----> 59
reduce로 할 수 있는 것은 엄청 많다.
- 배열 속 객체 프로퍼티 값 합산
- 중첩 배열 펼치기
- 객체 내 값 인스턴스 개수 세기
참고