Skip to content

Instantly share code, notes, and snippets.

@genakim
Created September 22, 2017 06:45
Show Gist options
  • Save genakim/56d58ca133f65104d5efa64c7126d6da to your computer and use it in GitHub Desktop.
Save genakim/56d58ca133f65104d5efa64c7126d6da to your computer and use it in GitHub Desktop.

Array: перебирающие методы

Аналог for. forEach

arr.forEach(callback[, thisArg]) - для каждого элемента массива вызывает функцию callback. Ничего не возвращает. В функцию попадают три параметра:

  • item – очередной элемент массива.

  • i – его номер.

  • arr – массив, который перебирается.

      var arr = ["Яблоко", "Апельсин", "Груша"];
      	arr.forEach(function(item, i, arr) {
      		alert( i + ": " + item + " (массив:" + arr + ")" );
      	});
    

thisArg - необязательный параметр, контекст this для callback


Создать новый массив с элементами по условию. filter

arr.filter(callback[, thisArg]) - создаёт новый массив, в который войдут только те элементы arr, для которых вызов callback(item, i, arr) возвратит true.


Создать новый массив с результатами вызова. map

arr.map(callback[, thisArg]) - создаёт новый массив, который будет состоять из результатов вызова callback(item, i, arr) для каждого элемента arr.


Проверить массив на условие. every/some

Эти методы используются для проверки массива.

arr.every(callback[, thisArg]) возвращает true, если вызов callback вернёт true для каждого элемента arr.

arr.some(callback[, thisArg]) возвращает true, если вызов callback вернёт true для какого-нибудь элемента arr.


Последовательная обработка каждого элемента массива с сохранением промежуточного результата. reduce/reduceRight

arr.reduce(callback[, initialValue])
Применяет функцию callback по очереди к каждому элементу массива слева направо, сохраняя при этом промежуточный результат.

Аргументы функции callback(previousValue, currentItem, index, arr):

  • previousValue – последний результат вызова функции, он же «промежуточный результат».
  • currentItem – текущий элемент массива, элементы перебираются по очереди слева направо.
  • index – номер текущего элемента.
  • arr – обрабатываемый массив.

initialValue если он есть, то на первом вызове значение previousValue будет равно initialValue, а если у reduce нет второго аргумента, то оно равно первому элементу массива, а перебор начинается со второго.

Пример:

var arr = [1, 2, 3, 4, 5]
// убрали 0 в конце
var result = arr.reduce(function(sum, current) {
	 return sum + current
});

alert( result ); // 15

Метод arr.reduceRight работает аналогично, но идёт по массиву справа-налево.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment