Метод .forEach() , по сути, представляет собой цикл for, внутри которого callback функция последовательно обрабатывает все элементы массива.
Метод .forEach() может передавать в callback функцию три параметра:
Это, пожалуй, единственный метод, который ничего не возвращает. Поэтому используется для внешних обработок, например, для вывода элементов массива на печать.
В частности, в последнем примере с помощью методов .forEach() и .includes() создаётся новый массив result, который содержит в себе общие элементы массивов arr1 и arr2, то есть является результатом пересечения этих массивов.
const arr = [1, 2, 3, 4, 5];
  
  for (let i = 0; i < arr.length; i++) {
    console.log(arr[i]);
  };
// variant #1
  arr.forEach(function(item) {
    console.log(item);
  });
// variant #2
  arr.forEach(item => console.log(item));
  
  console.log('------------------------------------');
  
// callback function parameters
  arr.forEach((item, idx, array) => console.log(item, idx, array));
  console.log('------------------------------------');
// get intersection of arrays
  let arr1 = [1, 3, 5];
  let arr2 = [1, 2, 3, 4, 5];
  let result = [];
  let res = arr1.forEach(item => {
    if (arr2.includes(item)) return result.push(item);
  });
  console.log(result); // [ 1, 3, 5 ]
  console.log(res); // undefinedДополнительную информацию вы можете найти в этом видео: