Работа С Массивами В Javascript Без Велосипедов

Эту статью я хочу посвятить тонкостям работы с массивами в JavaScript. Наверное, у каждого JavaScript-разработчика есть функции (как самописные, так и библиотечные).

$ (выбрать элемент по идентификатору) и $$ (выбор элементов по классу CSS).

Если мы выбираем несколько элементов по классу CSS, то мы хотим выполнить с ними определенные действия.

Цикл напрашивается сам собой.

Что делать, если вам нужен образец среди них? Трансформации? Действия над необходимыми элементами? Код не простой.

JavaScript не стоит на месте, Mozilla постоянно совершенствует JavaSript в своем движке Gecko, и было бы обидно не воспользоваться этими нововведениями.

В JavaScript 1.6 добавлены новые полезные методы для упрощения кода, необходимого в описанных выше ситуациях.



Новые методы класса Array



фильтр

фильтр (обратный вызов [, этотОбъект]) Подбор элементов по определенным критериям.

Пример

вар myArray = [3, 5, 7, 9, 4, 8, 2, 1, 6]; вар newArray = myArray.filter( функция (элемент){ возвращаться предмет > 5; }); // newArray будет равен массиву [ 7, 9, 8, 6 ]


для каждого

forEach(обратный вызов[, thisObject]) Выполните действия над каждым элементом массива.

Пример

вар myArray = [3, 5, 7, 9, 4, 8, 2, 1, 6]; myArray.forEach( функция (элемент) { оповещение (элемент); });


каждый

каждый (обратный вызов [, этотОбъект]) Возврат истинный если все элементы массива удовлетворяют условию, в противном случае возвращается ЛОЖЬ .

Пример

вар myArray = [3, 5, 7, 9, 4, 8, 2, 1, 6]; предупреждение( myArray.every( функция (элемент){ возвращаться предмет > 5; } ) ); // ЛОЖЬ предупреждение( myArray.every( функция (элемент){ возвращаться элемент < 10; } ) ); // true


некоторый

некоторые (обратный вызов [, этотОбъект]) Возврат истинный хотя бы один элемент массива удовлетворяет условию, в противном случае возвращается ЛОЖЬ .

Пример

вар myArray = [3, 5, 7, 9, 4, 8, 2, 1, 6]; предупреждение( myArray.some( функция (элемент){ возвращаться предмет > 5; } ) ); // истинный предупреждение( myArray.some( функция (элемент){ возвращаться предмет > 10; } ) ); // ЛОЖЬ


карта

карта(обратный вызов[, этотОбъект]) Создает новый массив, содержащий элементы старого массива после обработки указанной функцией.

Пример

вар myArray = [3, 5, 7, 9, 4, 8, 2, 1, 6]; вар newArray = myArray.map( функция (элемент){ возвращаться предмет + 10; }); // newArray будет равен массиву [ 13, 15, 17, 19, 14, 18, 12, 11, 16]


Мы объединяем

Эти методы можно использовать в сочетании друг с другом.

Пример

вар myArray = [3, 5, 7, 9, 4, 8, 2, 1, 6]; моймассив .

фильтр( функция (элемент){ возвращаться предмет > 5; } ) .

для каждого( функция (элемент) { оповещение (элемент); });

Ближе к практике
документ.формы[0].

элементы .

фильтр( функция (элемент){ возвращаться item.type == 'флажок'; } ) .

для каждого( функция (пункт) { item.checked = true; });



Совместимость

Что ж, прочитали мы эту статью и вдохновились.

но блин! Это доступно только в JavaScript начиная с версии 1.6! Без проблем.

Разработчики из Mozilla написали реализацию каждой из этих функций для старых версий JavaScript и разместили ее в описании функций.

Я скомпилировал эти реализации в файл массивы.

js .

Удачи вам в развитии! P.S. Не надо писать, что все это есть в jQuery :) Теги: #JavaScript #Mozilla #JavaScript

Вместе с данным постом часто просматривают: