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

на главную - закладки

Жанры

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

Пример

Метод

рор
и парный ему метод
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.

Поделиться:
Популярные книги

Мой муж – чудовище! Изгнанная жена дракона

Терин Рем
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Мой муж – чудовище! Изгнанная жена дракона

Бастард Императора. Том 8

Орлов Андрей Юрьевич
8. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 8

Кодекс Охотника. Книга XXV

Винокуров Юрий
25. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
6.25
рейтинг книги
Кодекс Охотника. Книга XXV

Хранилище

Старухин Евгений
5. Лесовик
Фантастика:
фэнтези
рпг
7.43
рейтинг книги
Хранилище

Чайлдфри

Тоцка Тала
Любовные романы:
современные любовные романы
6.51
рейтинг книги
Чайлдфри

Статьи

Переслегин Сергей Борисович
Документальная литература:
публицистика
5.00
рейтинг книги
Статьи

Последний реанорец. Том I и Том II

Павлов Вел
1. Высшая Речь
Фантастика:
фэнтези
7.62
рейтинг книги
Последний реанорец. Том I и Том II

Ваше Сиятельство 3

Моури Эрли
3. Ваше Сиятельство
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Ваше Сиятельство 3

Третий. Том 6

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
фантастика: прочее
попаданцы
5.00
рейтинг книги
Третий. Том 6

Сердце Дракона. Том 11

Клеванский Кирилл Сергеевич
11. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
6.50
рейтинг книги
Сердце Дракона. Том 11

Имперец. Том 3

Романов Михаил Яковлевич
2. Имперец
Фантастика:
боевая фантастика
попаданцы
альтернативная история
7.43
рейтинг книги
Имперец. Том 3

Фантом памяти

Маринина Александра
2. Преступления правильной жизни
Детективы:
прочие детективы
8.43
рейтинг книги
Фантом памяти

Я все еще не князь. Книга XV

Дрейк Сириус
15. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я все еще не князь. Книга XV

Кодекс Охотника. Книга XXIX

Винокуров Юрий
29. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Охотника. Книга XXIX