Вот список наиболее распространенных методов массива в JavaScript.
// Mutating push() // Insert an element at the end pop() // Remove an element from the end unshift() // Inserts an element in the beginning shift() // Remove first element // Iterating forEach() // Iterates an array filter() // Iterates an array and result is filtered array map() // Iterates an array and result is new array reduce() // "Reduces" the array into single value (accumulator) // Others slice() // Returns desired elements in a new array concat() // Append one or more arrays with given array
Методы мутации
Существует множество методов массива, которые изменяют массив. Мутация массива означает, что результирующий массив примет форму, отличную от предыдущей, аналогичную английскому определению мутации. Итак, давайте взглянем на некоторые из наиболее распространенных:
push ()
const array = [1, 2, 3, 4] array.push(10) // 5 (push returns the length of the new array) // array = [1, 2, 3, 4, 10]
push
вставит переданный элемент в конец массива и вернет длину нового массива.
поп ()
const array = [1, 2, 3 , 4] array.pop() // 4 (pop returns the element removed) // array = [1, 2, 3]
pop
удалит последний элемент в массиве и вернет этот элемент.
unshift ()
const array = [1, 2, 3, 4] array.unshift(9, 10) // 6 (unshift returns the length of new array) // array = [9, 10, 1, 2, 3, 4]
Метод unshift
добавит элементы, переданные в начало массива, сохраняя порядок, и вернет длину нового массива.
Note
: Вы можете передать в функцию столько элементов, сколько захотите.
сдвиг()
const array = [1, 2, 3, 4] array.shift() // 1(shift returns the removed element) // array = [2, 3, 4]
Метод shift
удалит первый элемент массива и вернет удаленный элемент.
Итерационные методы
Методы итерации очень эффективны, потому что итерация по массиву - одна из наиболее распространенных инструкций, которые мы хотим выполнить. Итак, давайте посмотрим на некоторые из них:
для каждого()
const array = [1, 2, 3, 4] array.forEach((elemnt, index) => { console.log(`Element ${element} at index ${index}`) }
Метод forEach
вызовет функцию, предоставленную один раз для каждого элемента в массиве, сохраняя порядок. Эта функция может принимать 3 разных аргумента: element
, index
, array
. Убедитесь, что порядок, в котором вы передаете эти параметры, соответствует порядку.
фильтр()
const array = [1, 2, 3, 4] const filteredArray = array.filter(element => element%2) // array = [1, 2, 3, 4] // filteredArray = [1, 3]
Метод filter
вернет новый массив с элементами, которые вернули true
из предоставленной функции. Обратите внимание, что в приведенном выше примере функция, переданная в метод фильтра, возвращает true
, если элемент нечетный, поэтому вы видите, что filteredArray
равно [1, 3]
.
Note
: метод filter не изменяет исходный массив. Это создаст новый массив.
карта()
const array = [1, 2, 3, 4] const mapArray = array.map(element => element * 2) // array = [1, 2, 3, 4] // mapArray = [2, 4, 6, 8]
map
создаст новый массив элементов, где каждый элемент является значением, возвращаемым предоставленной функцией. В приведенном выше примере показана функция удвоения каждого элемента. Следовательно, mapArray
равно [2, 4, 6, 8]
.
Note
: так же, как и метод filter, map не изменяет исходный массив, потому что он создаст новый массив.
уменьшать()
const array = [1, 2, 3, 4] const result = array.reduce((accumulator, current) => ( accumulator + current ), 10) // array = [1, 2, 3, 4] // result = 20
reduce
метод принимает reducer
функцию и начальное значение в качестве аргументов. Функция reducer
может принимать до 4 аргументов: accumulator
, element
, index
и array
. Функция редуктора будет выполняться для каждой итерации, а возвращаемое значение каждой итерации будет использоваться для следующей итерации.
Note
: метод reduce возвращает одно значение, а не массив.
Другие
Наконец, есть еще пара методов, которые очень важно знать и которые очень распространены в кодовой базе JavaScript.
кусочек()
const array = [1, 2, 3, 4] const slicedArray = array.slice(0, 2) // array = [1, 2, 3, 4] // slicedArray = [1, 2]
Метод slice
создаст новый массив с элементами из переданного диапазона индексов. В приведенном выше примере мы указываем начальный индекс (0) и конечный индекс (2), что дает нам новый массив [1, 2]
. Также обратите внимание, что исходный массив не изменился.
Note
: Конечный индекс - exclusive
, что означает, что элемент с этим конечным индексом не включен в новый массив.
concat ()
const array = [1, 2, 3, 4] const concatArray = array.concat([5, 6, 7, 8]) // array = [1, 2, 3, 4] // concatArray = [1, 2, 3, 4, 5, 6, 7, 8]
concat
создаст новый массив, содержащий все элементы исходного массива, за которым следует каждый из переданных массивов. Этот метод не изменяет исходный массив.
Note
: в качестве аргументов можно передать более одного массива.
Мы рассмотрели некоторые из наиболее распространенных методов массива JavaScript в этой небольшой памятке, и, надеюсь, это будет полезно для многих из вас. В JavaScript доступно гораздо больше методов массивов, кроме тех, которые мы рассмотрели, которые столь же полезны, если не больше, что вы проверяете в документации, такой как MDN.