Книга: Выразительный JavaScript
Фильтруем массив
Фильтруем массив
Чтобы найти людей, которые были молоды в 1924 году, может пригодиться следующая функция. Она отфильтровывает элементы массива, которые не проходят проверку.
function filter(array, test) {
var passed = [];
for (var i = 0; i < array.length; i++) {
if (test(array[i]))
passed.push(array[i]);
}
return passed;
}
console.log(filter(ancestry, function(person) {
return person.born > 1900 && person.born < 1925;
}));
// ? [{name: "Philibert Haverbeke", …}, …]
Используется аргумент с именем test
– это функция, которая производит вычисления проверки. Она вызывается для каждого элемента, а возвращаемое ею значение определяет, попадает ли этот элемент в возвращаемый массив.
В файле оказалось три человека, которые были молоды в 1924 – дедушка, бабушка и двоюродная бабушка.
Обратите внимание, функция filter
не удаляет элементы из существующего массива, а строит новый, содержащий только прошедшие проверку элементы. Это чистая функция, потому что она не портит переданный ей массив.
Как и forEach
, filter
– это один из стандартных методов массива. В примере мы описали такую функцию, только чтобы показать, что она делает внутри. Отныне мы будем использовать её просто:
console.log(ancestry.filter(function(person) {
return person.father == "Carel Haverbeke";
}));
// ? [{name: "Carolus Haverbeke", …}]
- Динамические массивы
- Новые функции API для работы с Blob и массивами
- 8.1.4. Сравнение массивов
- 8.1.22. Чередование массивов
- 9.1 Массивы RAID
- 9.2 Реализация массива ftAID на платформе Windows NT
- 8.2.8. Копирование хэша в массив
- Материнская плата имеет возможность организации RAID-массивов из двух SATA-дисков. Можно ли подключить к ней только один...
- 7.6. Обход элементов массива
- Типы массивов в Delphi
- 14.4.2. Хранение переменных окружения в виде массива или хэша
- Массивы