reduce

не мутирующий

Визуализация метода reduce https://reduce.surge.sh/

// .reduce() – "сворачивает" массив в результирующее значение

// const numbers = [1, 2, 3, 4, 5, 6];
// console.log('REDUCE STARTED');
// const result = numbers.reduce((acc, cur) => {
//   console.log({ acc, cur });
//   return acc * cur;
// }, 2);
// console.log('REDUCE ENDED');
// console.log({ result });

// ====



// первые два параметра обязательы acc и cur




const symbolArray = ['a', 'a', 'b', 'a', 'f', 'g', 'b', 'f', 'e', 'z'];
const symbolCounter = symbolArray.reduce((acc, cur) => {
  console.log({ acc, cur });
  if (acc[cur]) acc[cur] = acc[cur] + 1;
  else acc[cur] = 1;
  return acc;
}, {});

console.log({ symbolCounter });

Last updated