Выбор соответствующих ключей объекта

Beginner

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

Введение

В этом практическом занятии мы изучим, как использовать функцию pickBy() для создания нового объекта, состоящего только из пар ключ-значение, для которых заданная функция возвращает истинное значение. Эта функция может быть полезна в ситуациях, когда необходимо отфильтровать определенные свойства из объекта по определенным критериям. Мы узнаем, как использовать Object.keys(), Array.prototype.filter() и Array.prototype.reduce(), чтобы выполнить эту задачу.

Функция для выбора ключей объекта, соответствующих заданному условию

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

  • Используйте Object.keys() и Array.prototype.filter(), чтобы удалить ключи, для которых fn возвращает ложное значение.
  • Используйте Array.prototype.reduce(), чтобы преобразовать отфильтрованные ключи обратно в объект с соответствующими парами ключ-значение.
  • Функция обратного вызова вызывается с двумя аргументами: (значение, ключ).

Вот код для функции pickBy():

const pickBy = (obj, fn) =>
  Object.keys(obj)
    .filter((k) => fn(obj[k], k))
    .reduce((acc, key) => ((acc[key] = obj[key]), acc), {});

Вы можете использовать эту функцию, чтобы выбрать ключи, соответствующие условию. Например:

pickBy({ a: 1, b: "2", c: 3 }, (x) => typeof x === "number");
// { 'a': 1, 'c': 3 }

Резюме

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