Перебирающие методы массива взаимодействуют с каждым элементом массива.
Array.forEach()
Метод forEach() единожды вызывает функцию обратного вызова для каждого элемента массива.
var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);
function myFunction(value, index, array) {
   txt = txt + value + "<br>"; 
} 
Обратите внимание, что функция обратного вызова принимает 3 параметра:
- Значение элемента (value)
 - Индекс элемента (index)
 - Сам массив (array)
 
В предыдущем примере в функции обратного вызова используется только параметр со значением элемента value. Этот пример можно переписать следующим образом:
var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);
function myFunction(value) {
   txt = txt + value + "<br>"; 
} 
Метод Array.forEach() поддерживается всеми браузерами за исключением Internet Explorer 8 и более ранних версий.
Array.map()
Метод map() создает новый массив, предварительно выполнив функцию обратного вызова с каждым элементом исходного массива.
Метод map() не выполняет функцию обратного вызова, если у элементов массива нет значений.
Метод map() не изменяет оригинальный массив.
В следующем примере создается новый массив, значениями элементов которого будут значения элементов исходного массива умноженные на 2:
var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);
function myFunction(value, index, array) {
   return value * 2;
} 
Функция обратного вызова принимает 3 параметра:
- Значение элемента (value)
 - Индекс элемента (index)
 - Сам массив (array)
 
Если в функции обратного вызова используется только первый параметр value, то параметры index и array могут быть опущены:
var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);
function myFunction(value) {
   return value * 2;
} 
Метод Array.map() поддерживается всеми браузерами за исключением Internet Explorer 8 и более ранних версий.
Array.filter()
Метод filter() создает новый массив с элементами исходного массива, прошедшими заданную проверку.
В следующем примере создается новый массив из элементов исходного массива значения, которых больше 18:
var numbers = [45, 4, 9, 16, 25];
var over18 =  numbers.filter(myFunction);
function myFunction(value, index, array) {
  return value > 18;
} 
Функция обратного вызова принимает 3 параметра:
- Значение элемента (value)
 - Индекс элемента (index)
 - Сам массив (array)
 
В предыдущем примере в функции обратного вызова не используются параметры index и array, поэтому их можно опустить:
var numbers = [45, 4, 9, 16, 25];
var over18 =  numbers.filter(myFunction);
function myFunction(value) {
  return value > 18;
} 
Метод Array.filter() поддерживается всеми браузерами за исключением Internet Explorer 8 и более ранних версий.
Array.reduce()/Array.reduceRight()
Метод reduce()/reduceRight() выполняет функцию обратного вызова с каждым элементом массива для вычисления единого значения (сведения к единому значению).
Метод reduce() обрабатывает элементы массива слева направо.
Метод reduceRight() обрабатывает элементы массива справа налево.
Метод reduce()/reduceRight() не затрагивает исходный массив.
В следующем примере вычисляется сумма всех чисел в массиве:
var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction);
function myFunction(total, value, index, array) {
  return total + value;
} 
Обратите внимание, что функция обратного вызова принимает 4 параметра:
- Начальное/ранее возвращенное значение (total)
 - Значение элемента (value)
 - Индекс элемента (index)
 - Сам массив (array)
 
В предыдущем примере в функции обратного вызова не используются параметры index и array, поэтому его код можно переписать следующим образом:
var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction);
function myFunction(total, value) {
  return total + value;
} 
Метод reduce()/reduceRight() может принимать начальное значение:
var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction, 100);
function myFunction(total, value) {
  return total + value;
} 
Метод Array.reduce()/Array.reduceRight() поддерживается всеми браузерами за исключением Internet Explorer 8 и более ранних версий.
Array.every()
Метод every() проверяет, выполняют заданное условие все элементы массива.
В следующем примере проверяется, больше ли 18 значения всех элементов массива:
var numbers = [45, 4, 9, 16, 25];
var allOver18 =  numbers.every(myFunction);
function myFunction(value, index, array) {
   return  value > 18;
} 
Функция обратного вызова принимает 3 параметра:
- Значение элемента (value)
 - Индекс элемента (index)
 - Сам массив (array)
 
Если функция обратного вызова использует только первый параметр (value), то другие параметры можно опустить:
var numbers = [45, 4, 9, 16, 25];
var allOver18 =  numbers.every(myFunction);
function myFunction(value) {
  return  value > 18;
} 
Метод Array.every() поддерживается всеми браузерами за исключением Internet Explorer 8 и более ранних версий.
Array.some()
Метод some() проверяет, выполняет ли заданное условие хотя бы один элемент массива.
В следующем примере проверяется, есть ли в массиве хотя бы один элемент со значением больше 18:
var numbers = [45, 4, 9, 16, 25];
var someOver18 = numbers.some(myFunction);
function myFunction(value, index, array) {
   return  value > 18;
} 
Функция обратного вызова принимает 3 параметра:
- Значение элемента (value)
 - Индекс элемента (index)
 - Сам массив (array)
 
Метод Array.some() поддерживается всеми браузерами за исключением Internet Explorer 8 и более ранних версий.
Array.indexOf()
Метод indexOf() ищет в массиве элемент с заданным значением и возвращает его индекс.
Внимание! Первый элемент будет иметь индекс 0, второй — 1 и т. д.
В следующем примере ищем элемент со значением "Apple":
var fruits = ["Apple", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple"); 
Метод Array.indexOf() поддерживается всеми браузерами за исключением Internet Explorer 8 и более ранних версий.
Синтаксис:
массив.indexOf(элемент, начало)
| элемент | Обязательный параметр. Элемент для поиска. | 
| начало | Необязательный параметр. Позиция для начала поиска. Если указано отрицательное значение, то поиск начнется с позиции, отсчитанной с конца массива, и продолжится до конца массива. | 
Если элемент не найден, то метод Array.indexOf() вернет -1.
Если в массиве несколько элементов с заданным значением, то будет возвращен индекс первого найденного элемента.
Array.lastIndexOf()
Метод Array.lastIndexOf() аналогичен методу Array.indexOf(), но он начинает поиск с конца массива и ведет его к началу массива.
В следующем примере ищем элемент со значением "Apple":
var fruits = ["Apple", "Orange", "Apple", "Mango"];
var a = fruits.lastIndexOf("Apple"); 
Метод Array.lastIndexOf() поддерживается всеми браузерами за исключением Internet Explorer 8 и более ранних версий.
Синтаксис:
массив.lastIndexOf(элемент, начало)
| элемент | Обязательный параметр. Элемент для поиска. | 
| начало | Необязательный параметр. Позиция для начала поиска. Если указано отрицательное значение, то поиск начнется с позиции, отсчитанной с конца массива, и продолжится до начала массива. | 
Array.find()
Метод find() возвращает значение первого элемента массива, прошедшего заданную проверку в функции обратного вызова.
В следующем примере происходит поиск (и возврат значения) первого элемента, значение которого больше 18:
var numbers = [4, 9, 16, 25, 29];
var first =  numbers.find(myFunction);
function myFunction(value, index, array) {
  return  value > 18;
} 
Функция обратного вызова принимает 3 параметра:
- Значение элемента (value)
 - Индекс элемента (index)
 - Сам массив (array)
 
Метод Array.find() не поддерживается в старых браузерах.
Array.findIndex()
Метод findIndex() возвращает индекс первого элемента массива, прошедшего заданную проверку в функции обратного вызова.
В следующем примере возвращается индекс первого элемента, значение которого больше 18:
var numbers = [4, 9, 16, 25, 29];
var first =  numbers.findIndex(myFunction);
function myFunction(value, index, array) {
   return  value > 18;
} 
Функция обратного вызова принимает 3 параметра:
- Значение элемента (value)
 - Индекс элемента (index)
 - Сам массив (array)
 
Метод Array.findIndex() не поддерживается в старых браузерах.