js reduce

dev.dave·2023년 7월 24일

Javascript

목록 보기
9/167

자바스크립트
reduce라는 함수,
배열의 원소들을 누적시켜서 하나의 값으로 만들어주는 기능을 한다.

reduce((prev, curr) => {}, initial);


const arr = [1,2,3,4,5]

arr.reduce((x, y) => {
log(${x}+${y} = ${x+y})
return x+y
})

//1+2 = 3
//3+3 = 6
//6+4 = 10
//10+5 = 15

뒤에 값으로 연산을 계속 이어나간다.

즉,

arr.reduce((prev, curr) => {
(prev, curr) => {return x}
(prev, curr) => {return x}
(prev, curr) => {return x}
result
}, initial)

즉,
x 가 prev로 계속 들어가서 연산을 한다.


const arr = [1,2,3,4,5]

const sum = (x,y) => {x+y}

const result = arr.reduce(sum);

console.log(result); // 15


왜 사용하냐?
전통적인 for 문이나 while문을 대체할 수 있고,
가독성이 좋다.
함수마다 주어지는 그 임무만 수행하면되기때문에,
사이드이펙을 걱정하지 않아도된다.

평균치 구할때도, 좋다.

console.log(result / arr.length) //이런식으로 평균치 뽑기 가능.


const arr = [1,2,3,4,5]

const average = (sum, val, index, arr) => {
sum += val; //누적해줌
return index === arr.length - 1 ? sum / arr.length : sum //지금 인덱스가 마지막 인덱스 일때는, 평균치반환하고 아니면 sum이라는 누적값 반환시켜서 sum에 다시전달.
}

console.log(arr.reduce(average)) //3


const nums =[50, 10, 20, 80, 40];

const max = (x, y) => x > y ? x: y;

console.log(nums.reduce(max)); // 80

profile
🔥개인 메모 / 다른블로그 자료 참조 / 다른블로그 자료 퍼옴 (출처표기) /여기저기서 공부 했던 내용 개인메모 & 참고 / 개인 기록 용도 블로그 입니다.🔥

0개의 댓글