Чтение онлайн

ЖАНРЫ

JavaScript. Подробное руководство, 6-е издание
Шрифт:

Array.every, Array.filter, Array.forEach, Array.indexOf, Array.reduce

Array.pop

удаляет и возвращает последний элемент массива

Синтаксис

массив.pop

Возвращаемое значение

Последний элемент массива.

Описание

Метод

рор
удаляет последний элемент массива, уменьшает длину массива на единицу и возвращает значение удаленного элемента. Если массив уже пуст,
рор
его не изменяет и возвращает значение
undefined
.

Пример

Метод

рор
и парный ему метод
push
позволяют реализовать стек, работающий по принципу «первым вошел, последним вышел». Например:

var stack = []; // stack:
[]

stack.push(1, 2); // stack:[1,2] Вернет 2

stack.pop; // stack:[1] Вернет 2

stack.push([4,5]);// stack:[1,[4,5]] Вернет 2

stack.pop // stack:
[1] Вернет [4,5]

stack.pop; // stack:
[] Вернет 1

См. также

Array.push

Array.push

добавляет элементы массива

Синтаксис

массив, push(значение, ...)

Аргументы

значение, ... Одно или более значений, которые должны быть добавлены в конец массива.

Возвращаемое значение

Новая длина массива после добавления в него указанных значений.

Описание

Метод

push
добавляет свои аргументы в указанном порядке в конец массива. Он изменяет существующий массив, а не создает новый. Метод
push
и парный ему метод
рор
используют массив для реализации стека, работающего по принципу «первым вошел, последним вышел». Пример - в статье Array.рор.

См. также

Array. рор

Array.reduce (ECMAScript 5)

вычисляет значение из элементов массива

Синтаксис

массив.reduce(f)

массив.reduce(f, начальное_значение)

Аргументы

f Функция, объединяющая два значения (два элемента массива) и возвращающая новое значение «свертки».

начальное_значение Необязательное начальное значение свертки массива. Если этот аргумент указан, метод

reduce
будет действовать, как если бы это значение было добавлено в начало массива.

Возвращаемое значение

Значение свертки массива, которое является результатом последнего вызова функции f.

Описание

Метод

reduce
в первом аргументе принимает функцию f. Эта функция должна действовать как двухместный оператор: она должна принимать два значения, выполнять над ними некоторую операцию и возвращать результат. Если массив имеет n элементов, функция f будет вызвана методом
reduce
для свертки элементов в единственное значение n -1 раз. (Возможно, вы уже знакомы с операцией свертки массивов по другим языкам программирования [61]

61

В

других языках программирования эта операция может называться «fold» или «inject». Однако в русскоязычной литературе эти термины переводятся как «свертка» (Прим. перев.))

При первом вызове функции f передаются два первых элемента массива. При каждом следующем вызове функции f передаются значение, полученное при предыдущем вызове, и следующий элемент (в порядке возрастания индексов) массива. Возвращаемое значение последнего вызова становится возвращаемым значением метода

reduce
. Методу
reduce
может предаваться второй необязательный аргумент с начальным_значением. Если начальное_значение указано, метод
reduce
будет действовать так, как если бы значение этого аргумента было вставлено в начало массива (в реальности массив не модифицируется). Иными словами, если метод
reduce
вызывается с двумя аргументами, то начальное_значение будет использоваться, как если бы оно было получено ранее в результате вызова функции f. В этом случаев при первом вызове функции f будут переданы начальное_значение и первый элемент массива. Когда передается начальное_значение, создается свертка из n+1 элементов (n элементов массива плюс начальное_ значение) и функция сбудет вызвана n раз.

Если массив пуст и начальное_значение не указано, метод

reduce
возбудит исключение
ТуреЕrror
. Если массив пуст и начальное_значение указано, метод
reduce
вернет начальное_значение, не вызвав f ни разу. Если массив имеет единственный элемент и начальное_значение не указано, метод
reduce
вернет единственный элемент массива, не вызывая функцию f.

Выше говорится о двух аргументах функции f, но в действительности метод

reduce
передает этой функции четыре аргумента. В третьем аргументе передается индекс второго аргумента в массиве, а в четвертом - сам массив. Функция f всегда вызывается как функция, а не как метод.

Пример

[ 1,2,3,4].reduce(function(х,у) { return х*у; }) // => 24: ((1*2)*3)*4

См. также

Array.forEach, Array.map, Array.reduceRight

Array.reduceRight (ECMAScript 5)

выполняет свертку массива справа налево

Синтаксис

массив. reduceRight(f)

массив. reduceRight(f, начальное_значение)

Аргументы

f Функция, объединяющая два значения (два элемента массива) и возвращающая новое значение «свертки».

начальное_значение Необязательное начальное значение свертки массива. Если этот аргумент указан, метод

reduceRight
будет действовать, как если бы это значение было добавлено в конец массива.

Возвращаемое значение

Значение свертки массива, которое является результатом последнего вызова функции f.

Описание

Метод

reduceRight
действует подобно методу
reduce:
он вызывает n-1 раз функцию f для свертки n элементов массива в единственное значение. Отличие
reduceRight
от
reduce
заключается только в том, что он выполняет обход элементов массива справа налево (от больших индексов к меньшим), а не слева направо. Подробности см. в статье Array.reduce.

Поделиться с друзьями: