Проверка свойств объектов с использованием каррированных функций

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

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

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

Введение

В этом лабе мы исследуем функцию checkProp на JavaScript. Эта функция принимает предикат-функцию и имя свойства, и возвращает каррированную функцию, которая проверяет, удовлетворяет ли значение свойства предикату для заданного объекта. Мы узнаем, как использовать эту функцию для эффективной проверки свойств объектов и создания гибкого и повторно используемого кода.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic 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/BasicConceptsGroup -.-> javascript/obj_manip("Object Manipulation") subgraph Lab Skills javascript/variables -.-> lab-28194{{"Проверка свойств объектов с использованием каррированных функций"}} javascript/data_types -.-> lab-28194{{"Проверка свойств объектов с использованием каррированных функций"}} javascript/arith_ops -.-> lab-28194{{"Проверка свойств объектов с использованием каррированных функций"}} javascript/comp_ops -.-> lab-28194{{"Проверка свойств объектов с использованием каррированных функций"}} javascript/array_methods -.-> lab-28194{{"Проверка свойств объектов с использованием каррированных функций"}} javascript/obj_manip -.-> lab-28194{{"Проверка свойств объектов с использованием каррированных функций"}} end

Проверка свойства

Для проверки того, соответствует ли определенное свойство объекта определенному условию, используйте функцию checkProp. Эта функция создает каррированную функцию, которая принимает в качестве аргументов предикат-функцию и имя свойства. Возвращенная функция затем принимает объект и возвращает true или false в зависимости от того, соответствует ли указанное свойство условию, заданному предикат-функцией.

Вот пример реализации checkProp:

const checkProp = (predicate, prop) => (obj) => !!predicate(obj[prop]);

И вот несколько примеров использования этой функции:

const lengthIs4 = checkProp((l) => l === 4, "length");
lengthIs4([]); // false
lengthIs4([1, 2, 3, 4]); // true
lengthIs4(new Set([1, 2, 3, 4])); // false (Set использует Size, а не length)

const session = { user: {} };
const validUserSession = checkProp((u) => u.active && !u.disabled, "user");

validUserSession(session); // false

session.user.active = true;
validUserSession(session); // true

const noLength = checkProp((l) => l === undefined, "length");
noLength([]); // false
noLength({}); // true
noLength(new Set()); // true

Кратко говоря, функция checkProp позволяет легко проверить значение определенного свойства на объекте, указав для этого свойства предикат-функцию.

Резюме

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