Post

Reduce

새로운 배열을 반환하는데, 값을 누적시켜서 반환하는 메소드

const calc = [0, 1, 2, 3, 4].reduce(function (
  accumulator,
  currentValue,
  currentIndex,
  array
) {
  return accumulator + currentValue;
});

console.log(calc); // 10

accumulator: 누산기. 콜백의 반환값을 누적

currentValue: 처리할 현재 요소

currentIndex: 처리할 현재 요소의 인덱스. initialValue가 있는 경우 0, 아니면 1부터 시작.(Optional)

array: reduce()를 호출한 배열.(Optional)

initialValue: 콜백 최초 호출 시 첫번째 인수를 제공하는 값. 초기값을 제공하지 않으면 배열의 첫번째 요소를 사용한다.

 

JavaScript

const calc = [10, 11, 12, 13, 14].reduce(function (
  accumulator,
  currentValue,
  currentIndex,
  array
) {
  return accumulator + currentValue;
});

console.log(calc); // 60

 

 

 

JavaScript

const calc = [10, 11, 12, 13, 14].reduce(function (
  accumulator,
  currentValue,
  currentIndex,
  array
) {
  return accumulator + currentValue;
},
100);

console.log(calc); // 160

 

 

 

 

 

Reduce로 배열 내 홀수 개수 찾기

JavaScript

arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const sum = arr.reduce(function (acc, current, idx) {
  if (current % 2 == 1) {
    acc++;
  }
  return acc;
}, 0);
console.log(sum); // 5

 

 

 

Reduce로 HTML 조작하기

HTML

    <script src="./lodash.js"></script>
    <script src="./test.js" defer></script>
  </head>
  <body>
    <div class="test"></div>
  </body>

 

JavaScript

const test = document.querySelector(".test");
const numbers = [1, 2, 3, 4, 5];
const suffled = _.shuffle(numbers);

const html = suffled.reduce(function (acc, item, idx) {
  if (idx < suffled.length - 1) {
    return (acc += `<li>${item}</li>`);
  } else {
    return (acc += `<li>${item}</li></ul>`);
  }
}, "<ul>");
test.innerHTML = html;

 

ON BROWSER

 

'JavaScript related' 카테고리의 다른 글

JavaScript Cat MBTI test  (0) 2023.02.01
JavaScript find & filter & charAt  (0) 2023.02.01
JavaScript beforeunload  (0) 2023.02.01
JavaScript Event Delegation  (0) 2023.01.31
JavaScript target & currentTarget  (0) 2023.01.31
▲ top