Вход/Регистрация
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

См. также

  • Читать дальше
  • 1
  • ...
  • 476
  • 477
  • 478
  • 479
  • 480
  • 481
  • 482
  • 483
  • 484
  • 485
  • 486
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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