Зачем нужен третий параметр array для обратной функции в forEach, map, filter…?

Третий параметр array, который можно передать в обратную функцию в методах forEach, map, filter и других, является необязательным параметром. Он представляет собой ссылку на исходный массив, по которому осуществляется итерация.

Использование параметра array может быть полезным в случаях, когда внутри обратной функции требуется обращаться к исходному массиву или к элементам, находящимся перед или после текущего элемента, по которому осуществляется итерация.

Например, при использовании метода forEach, можно обратиться к элементам, которые находятся после текущего элемента, путем использования третьего параметра array. В следующем примере показано, как это можно сделать:

const numbers = [1, 2, 3, 4, 5];

numbers.forEach((currentValue, index, array) => {
  if (index < array.length - 1) {
    const nextValue = array[index + 1];
    console.log(`Current value: ${currentValue}, Next value: ${nextValue}`);
  }
});

В данном примере мы используем третий параметр array для получения следующего элемента после текущего элемента. Это позволяет нам выполнить некоторые действия на основе значения текущего и следующего элементов.

Аналогичным образом, третий параметр array может использоваться в методах map и filter. В методе map, например, мы можем использовать параметр array для получения доступа к другим элементам массива и выполнять операции над ними.

const numbers = [1, 2, 3, 4, 5];

const doubledNumbers = numbers.map((currentValue, index, array) => {
  const nextValue = (index < array.length - 1) ? array[index + 1] : null;
  return currentValue * nextValue;
});

В данном примере метод map используется для удвоения каждого числа массива, умножая его на следующий элемент в массиве. Здесь параметр array позволяет обратной функции обращаться к другим элементам массива и делать вычисления на основе их значений.

Хотя третий параметр array необязателен и может не использоваться в большинстве случаев, он может быть полезным в определенных ситуациях, когда требуется доступ к другим элементам массива или выполнение операций, которые зависят от исходного массива.