Перечислимый класс предоставляет большой набор полезных методов для перечислений. Перечисления — это объекты, которые действуют как совокупность значений.
Методы перечисления в основном используются для перечисления массивов и хэшей . Есть и другие объекты, такие как ObjectRange и различные объекты, связанные с DOM или AJAX, где вы можете использовать методы перечисления.
Параметр контекста
Каждый метод Enumerable, который принимает итератор, также принимает объект контекста в качестве следующего (необязательного) параметра. Объект контекста — это то, к чему будет привязан итератор, поэтому ключевое слово this внутри него будет указывать на объект.
var myObject = {}; ['foo', 'bar', 'baz'].each(function(name, index) { this[name] = index; }, myObject); // we have specified the context myObject;
Это даст следующий результат —
Выход
{ foo: 0, bar: 1, baz: 2}
Эффективное использование
-
Когда вам нужно вызвать один и тот же метод для всех элементов, используйте метод invoke () .
-
Когда вам нужно получить одно и то же свойство для всех элементов, используйте метод pluck () .
-
Методы findAll / select извлекают все элементы, которые соответствуют данному предикату. И наоборот, метод reject () извлекает все элементы, которые не соответствуют предикату. В конкретном случае, когда вам нужны оба набора, вы можете избежать зацикливания дважды: просто используйте метод partition () .
Когда вам нужно вызвать один и тот же метод для всех элементов, используйте метод invoke () .
Когда вам нужно получить одно и то же свойство для всех элементов, используйте метод pluck () .
Методы findAll / select извлекают все элементы, которые соответствуют данному предикату. И наоборот, метод reject () извлекает все элементы, которые не соответствуют предикату. В конкретном случае, когда вам нужны оба набора, вы можете избежать зацикливания дважды: просто используйте метод partition () .
Вот полный список всех методов, связанных с Enumerable.
Прототип перечислимых методов
ПРИМЕЧАНИЕ. — Убедитесь, что у вас есть хотя бы версия 1.6 файла prototype.js.
Определяет, все ли элементы логически эквивалентны истине, либо напрямую, либо через вычисления предоставленным итератором.
Определяет, является ли хотя бы один элемент булево-эквивалентным true, либо напрямую, либо посредством вычислений предоставленным итератором.
Возвращает результаты применения итератора к каждому элементу. Псевдоним как карта ().
Находит первый элемент, для которого итератор возвращает true. С псевдонимом методом find ().
Он позволяет вам перебирать все элементы в общем виде, а затем возвращает Enumerable, тем самым позволяя вызывать цепочку.
Группирует элементы в чанки по заданному размеру, причем последний чанк может быть меньше.
Псевдоним для более общего метода toArray.
Находит первый элемент, для которого итератор возвращает true. Удобный псевдоним для обнаружения ().
Возвращает все элементы, для которых итератор вернул true. С псевдонимом выберите ().
Возвращает все элементы, которые соответствуют фильтру. Если предоставляется итератор, он используется для получения возвращаемого значения для каждого выбранного элемента.
Группирует элементы в порции фиксированного размера, используя определенное значение для заполнения последнего порции, если это необходимо.
Определяет, находится ли данный объект в Enumerable или нет, на основе оператора сравнения ==. Псевдоним как член ().
Постепенно создает значение результата на основе последовательных результатов итератора.
Оптимизация для общего варианта использования each () или collect (): вызов одного и того же метода с одинаковыми потенциальными аргументами для всех элементов.
Возвращает результаты применения итератора к каждому элементу. Удобный псевдоним для collect ().
Возвращает максимальный элемент (или вычисление на основе элементов) или неопределенный, если перечисление пусто. Элементы сравниваются либо напрямую, либо путем применения итератора и сравнения возвращаемых значений.
Определяет, находится ли данный объект в Enumerable или нет, на основе оператора сравнения ==. Удобный псевдоним для include ().
Возвращает минимальный элемент (или вычисление на основе элементов) или неопределенный, если перечисление пусто. Элементы сравниваются либо напрямую, либо путем применения итератора и сравнения возвращаемых значений.
Разбивает элементы на две группы: те, которые считаются истинными, и те, которые считаются ложными.
Оптимизация для общего варианта использования collect (): выбор одного и того же свойства для всех элементов. Возвращает значения свойств.
Возвращает все элементы, для которых итератор возвратил false.
Псевдоним для метода findAll ().
Возвращает размер перечисления.
Предоставляет отсортированное пользователем представление элементов на основе критериев, рассчитанных для каждого элемента итератором.
Возвращает представление массива перечисления. Псевдоним как записи ().
Застегните молнию (подумайте о молнии на брюках) 2 + последовательности, предоставляя массив кортежей. Каждый кортеж содержит одно значение на исходную последовательность.