JavaScript Масиви : Розуміння зниження функції

синтаксис

arr.reduce(callbackFunction, [initialValue])

Що робити зменшують?

Зменшити це функція, яка петлі через масив.

Операції можна виконувати на масиві за допомогою функції зворотного виклику.

В кінці операції на масиві, знизити повертає одне значення

Зниження може бути використано, наприклад, в цілому в кошик

приклад

  нехай обр = [1,2,3,4,5];
  arr.reduce( (акумулятор, CurrentValue, currentIndex, масив) => { 
      //деякі операції;
      повернути щось;
  });

 

Як передзвонити функції

Функція зворотного виклику викликається для кожного елемента в масиві, переходить в 4 аргументи, які передаються за допомогою функції зменшення.

ці 4 аргументи можуть бути використані в нашій функції зворотного виклику.

Приймає чотири аргументи

  1. акумулятор – Перший елемент масиву на першому циклі або початкове значення, якщо вони надані. Потім повертається значення попереднього циклу.
  2. CurrentValue – Поточний елемент в масиві. Запускає від другого елементу масиву, тобто. прибуття[1], коли початкове значення аргументу не передається. Якщо початкове значення аргументу передається, то поточне значення починається з 1-го елемента в масиві обр[0].
  3. currentIndex – Індекс поточного елемента.
  4. масив – весь масив.

Робочий приклад

нехай обр = [1,2,3,4,5];

arr.reduce(
  (акумулятор, CurrentValue, currentIndex, масив) => {
    console.log(`акумулятор (На 1-му циклі, акумулятор обр[0], то повертається значення попереднього циклу): ${акумулятор}`);
    console.log(`CurrentValue (Контури через масив, починаючи з обр[1]): ${CurrentValue}`);
    console.log(`currentIndex: ${currentIndex}`);
    console.log(`масив: ${масив}`);
    console.log('---');
    повернення акумулятора + CurrentValue;
  }
);

вихід

акумулятор (На 1-му циклі, акумулятор обр[0], то повертається значення попереднього циклу): 1
CurrentValue (Контури через масив, починаючи з обр[1]): 2
currentIndex: 1
масив: 1,2,3,4,5
---
акумулятор (На 1-му циклі, акумулятор обр[0], то повертається значення попереднього циклу): 3
CurrentValue (Контури через масив, починаючи з обр[1]): 3
currentIndex: 2
масив: 1,2,3,4,5
---
акумулятор (На 1-му циклі, акумулятор обр[0], то повертається значення попереднього циклу): 6
CurrentValue (Контури через масив, починаючи з обр[1]): 4
currentIndex: 3
масив: 1,2,3,4,5
---
акумулятор (На 1-му циклі, акумулятор обр[0], то повертається значення попереднього циклу): 10
CurrentValue (Контури через масив, починаючи з обр[1]): 5
currentIndex: 4
масив: 1,2,3,4,5
---

 

Забезпечення початкового значення

Завдання другого параметра (InitialValue) в функції зниження викличе InitialValue бути прийнятий в якості аргументу акумулятора на першому циклі.

Зверніть увагу, що поточне значення на 1-му циклі тепер починається з першого елемента масиву

Робочий приклад

  нехай обр = [1,2,3,4,5];

  arr.reduce(
  (акумулятор, CurrentValue, currentIndex, масив) => {
    console.log(`акумулятор ( На 1-му циклі, це початкове значення, то повертається значення попереднього циклу): ${акумулятор}`);
    console.log(`CurrentValue (Контури через масив, починаючи з обр[0]): ${CurrentValue}`);
    console.log(`currentIndex: ${currentIndex}`);
    console.log(`масив: ${масив}`);
    console.log('---');
    повернення акумулятора + CurrentValue;
  }, 0
);

вихід

акумулятор ( На 1-му циклі, це початкове значення, то повертається значення попереднього циклу): 0
CurrentValue (Контури через масив, починаючи з обр[0]): 1
currentIndex: 0
масив: 1,2,3,4,5
---
акумулятор ( На 1-му циклі, це початкове значення, то повертається значення попереднього циклу): 1
CurrentValue (Контури через масив, починаючи з обр[0]): 2
currentIndex: 1
масив: 1,2,3,4,5
---
акумулятор ( На 1-му циклі, це початкове значення, то повертається значення попереднього циклу): 3
CurrentValue (Контури через масив, починаючи з обр[0]): 3
currentIndex: 2
масив: 1,2,3,4,5
---
акумулятор ( На 1-му циклі, це початкове значення, то повертається значення попереднього циклу): 6
CurrentValue (Контури через масив, починаючи з обр[0]): 4
currentIndex: 3
масив: 1,2,3,4,5
---
акумулятор ( На 1-му циклі, це початкове значення, то повертається значення попереднього циклу): 10
CurrentValue (Контури через масив, починаючи з обр[0]): 5
currentIndex: 4
масив: 1,2,3,4,5
---