js работа с массивами с помощью метода filter

Например нужно взять из массива те объекты с пользователями, которым больше 10 лет, вручную это выглядит так:

const users = [
  { name: 'Igor', age: 19 },
  { name: 'Danil', age: 1 },
  { name: 'Vovan', age: 4 },
  { name: 'Matvey', age: 16 },
];

const result = [];
for (const user of users) {
  const { age } = user;
  if (age > 10) {
    result.push(user);
  }
}
console.log(result); // [ { name: 'Igor', age: 19 }, { name: 'Matvey', age: 16 } ]



Тоже самое но короче можно записать с помощью метода filter:

const filteredUsers = users.filter(({ age }) => age > 10);


Callback-функция, передаваемая в filter, должна быть предикатом. То есть её задача вернуть либо true, либо false для каждого элемента коллекции. Значение, которое возвращается, никак не используется — оно всего лишь говорит о том, включать ли текущий элемент в итоговый массив или нет. Новички часто делают ошибку на этом этапе и начинают возвращать из фильтра то, что они бы хотели увидеть в результирующем массиве (для этого надо применять map).



Оставить свой ответ:

Имя:*
E-Mail:
Вопрос:
Skolko buдет пять пдюс сeмь?
Ответ:*
QQpedia21.ru - cамые интересные вопросы