javascript - reduce

SANGKU OH·2020년 10월 30일
0
post-thumbnail

Reduce

Array.reduce((누적값, 현재값, 인덱스, 요소) => {return result}, 초기값);

사족이 필요없을 것 같다. 아래의 예시코드로 Easy하게 살펴보자 😆

Example

case 1

const number = [1, -1, 2, 3];

let sum = 0;
	for (let n of numbers)
    sum +n;

console.log(sum); //5

case 2

const number = [1, -1, 2, 3];

// acc = 0, cur = 1 => acc = 1
// acc = 1, cur = -1 => acc = 0
// acc = 0, cur = 2 => acc = 2
// acc = 2, cur = 3 => acc = 5

const sum = number.reduce((acc, cur) => {
  return acc + cur;
}, 0);

console.log(sum) //5

case 3

const number = [1, -1, 2, 3];

// acc = 1, cur = -1 => acc = 0
// acc = 0, cur = 2 => acc = 2
// acc = 2, cur = 3 => acc = 5
const sum = number.reduce((acc, cur) => acc + cur);

console.log(sum) //5

case 4

초기값에 배열은 선언해준다면 이런식으로 새로운 배열을 return 할수도 있다!

const number = [1, 2, 3, 4, 5, 6];

const oddEven = number.reduce((acc, cur) => {
  acc.push(cur % 2 ? '홀수' : '짝수')
  return acc;
},[]);

console.log(oddEven) //['홀수', '짝수', '홀수', '짝수', '홀수']

case 5

위의 상황을 응용한다면 조건부(filter)의 결과를 return 할 수 있다!

const number = [1, 2, 3, 4, 5, 6];

const oddEven = number.reduce((acc, cur) => {
  if(cur % 2){
    acc.push(cur)
  }
  return acc;
},[]);

console.log(oddEven)
profile
Prof.Google을 통해 필요한 정보를 이 곳에 insert 🐸

0개의 댓글