Фильтрация совпадающих и неуказанных значений

Beginner

This tutorial is from open-source community. Access the source code

Введение

В этом практическом занятии мы изучим программирование на JavaScript и научимся совместно использовать методы Array.prototype.reduce(), Array.prototype.filter() и Array.prototype.map() для создания функции, которая фильтрует массив объектов по условию и также исключает неуказанные ключи. Это практическое занятие поможет нам лучше понять функциональное программирование в JavaScript и как эффективно манипулировать массивами объектов.

Фильтрация объектов по условию и ключам

Для фильтрации массива объектов по условию и при этом исключения неуказанных ключей используйте функцию reducedFilter().

Следуйте шагам ниже:

  1. Используйте Array.prototype.filter() для фильтрации массива по предикату fn, чтобы получить объекты, для которых условие вернуло истинное значение.

  2. Используйте Array.prototype.map() для отфильтрованного массива, чтобы вернуть новый объект.

  3. Используйте Array.prototype.reduce() для исключения ключей, которые не были переданы в качестве аргумента keys.

const reducedFilter = (data, keys, fn) =>
  data.filter(fn).map((el) =>
    keys.reduce((acc, key) => {
      acc[key] = el[key];
      return acc;
    }, {})
  );

Вот пример использования функции reducedFilter():

const data = [
  {
    id: 1,
    name: "john",
    age: 24
  },
  {
    id: 2,
    name: "mike",
    age: 50
  }
];

reducedFilter(data, ["id", "name"], (item) => item.age > 24);
// Output: [{ id: 2, name:'mike'}]

Для начала практики программирования откройте Терминал/SSH и введите node.

Резюме

Поздравляем! Вы завершили практическое занятие по фильтрации совпадающих и неуказанных значений. Вы можете выполнить больше практических занятий в LabEx, чтобы улучшить свои навыки.