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

JavaScriptJavaScriptBeginner
Практиковаться сейчас

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/array_methods("Array Methods") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") javascript/AdvancedConceptsGroup -.-> javascript/destr_assign("Destructuring Assignment") subgraph Lab Skills javascript/variables -.-> lab-28543{{"Выбор соответствующих ключей объекта"}} javascript/data_types -.-> lab-28543{{"Выбор соответствующих ключей объекта"}} javascript/arith_ops -.-> lab-28543{{"Выбор соответствующих ключей объекта"}} javascript/comp_ops -.-> lab-28543{{"Выбор соответствующих ключей объекта"}} javascript/array_methods -.-> lab-28543{{"Выбор соответствующих ключей объекта"}} javascript/higher_funcs -.-> lab-28543{{"Выбор соответствующих ключей объекта"}} javascript/destr_assign -.-> lab-28543{{"Выбор соответствующих ключей объекта"}} end

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

Для выбора ключей объекта, соответствующих заданному условию, используйте функцию 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, чтобы улучшить свои навыки.