메모 Javascript reduce 사용 방법

2404 단어 JavaScript
for문을 많이 쓰면 코드의 전망이 좋지 않아서 Reduce를 사용했습니다.
처리 속도에 대해 다음과 같은 각 선배들의 투고가 있는 글은 아래의 내용을 참조하시오.

for 문장의 처리

var array = [0, 1, 2, 3, 4];
var sum = 0;

for(var i = 0; i < array.length; i++){
  sum += array[i];
}

console.log(sum); // 10

reduce의 처리 ①

var array = [0, 1, 2, 3, 4];

var result = array.reduce(function(accumlator, currentValue, currentIndex, array){
  return accumlator + currentValue;
})

console.log(result); // 10

reduce의 처리 ②

var array = [0, 1, 2, 3, 4];

var result = array.reduce(function(accumlator, currentValue){
  return accumlator + currentValue;
},10);

console.log(result); //20


※ 두 번째 매개변수에서 초기값을 설정할 수 있습니다.(이번 설정은 10)

Reduce로 ③ 처리


API 응답에 잘 존재할 수 있는 배열에 json 대상의 모양을 추가하는 것을 처리해 보십시오.
요점은 0을 두 번째 파라미터에 건네주어 초기값을 설정하는 것이다!
var items = [
  {
    name: 'pen',
    price: 100,
    quantity: 2
  },
  {
    name: 'note',
    price: 200,
    quantity: 3
  },
  {
    name: 'eraser',
    price: 50,
    quantity: 1,
  }
]

var result = items.reduce(function(accumlator, currentValue){
  console.log(accumlator);
  console.log(currentValue);
  return accumlator + (currentValue.price * currentValue.quantity);
},0);

console.log(result); //850

↑의 콘솔.log와 console.log와 console.log 결과

0
{ name: 'pen', price: 100, quantity: 2 }
200
{ name: 'note', price: 200, quantity: 3 }
800
{ name: 'eraser', price: 50, quantity: 1 }
850
참고 자료
https://qiita.com/Hibikine_Kage/items/660392270c466b3f9805
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce

좋은 웹페이지 즐겨찾기