Проверить, содержит ли объект ключ

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

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

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

Введение

В этом практическом занятии мы изучим, как проверить, существует ли целевое значение в JSON-объекте с использованием JavaScript. Мы будем использовать функцию hasKey(), которая позволяет последовательно проверять ключи в объекте, чтобы определить, присутствует ли целевое значение. Это практическое занятие поможет лучше понять, как работать с JSON-объектами в JavaScript.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) 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/cond_stmts("Conditional Statements") javascript/BasicConceptsGroup -.-> javascript/array_methods("Array Methods") javascript/AdvancedConceptsGroup -.-> javascript/destr_assign("Destructuring Assignment") subgraph Lab Skills javascript/variables -.-> lab-28520{{"Проверить, содержит ли объект ключ"}} javascript/data_types -.-> lab-28520{{"Проверить, содержит ли объект ключ"}} javascript/arith_ops -.-> lab-28520{{"Проверить, содержит ли объект ключ"}} javascript/comp_ops -.-> lab-28520{{"Проверить, содержит ли объект ключ"}} javascript/cond_stmts -.-> lab-28520{{"Проверить, содержит ли объект ключ"}} javascript/array_methods -.-> lab-28520{{"Проверить, содержит ли объект ключ"}} javascript/destr_assign -.-> lab-28520{{"Проверить, содержит ли объект ключ"}} end

JavaScript-функция для проверки наличия ключа в объекте

Для проверки наличия целевого значения в JavaScript-объекте используйте функцию hasKey.

Функция принимает два аргумента: obj — JSON-объект, в котором нужно искать, и keys — массив ключей для проверки. Вот шаги по проверке наличия у объекта заданного ключа (или ключей):

  1. Проверьте, не пустой ли массив keys. Если он пуст, верните false.
  2. Используйте метод Array.prototype.every() для перебора массива keys и последовательной проверки каждого ключа на вложенность в объект obj.
  3. Используйте метод Object.prototype.hasOwnProperty() для проверки, не имеет ли obj текущего ключа или не является ли он объектом. Если хотя бы одно из этих условий истинно, остановите распространение и верните false.
  4. В противном случае назначьте значение ключа объекту obj, чтобы использовать его на следующей итерации.
  5. Если массив keys был успешно перебран, верните true.

Вот код функции hasKey:

const hasKey = (obj, keys) => {
  return (
    keys.length > 0 &&
    keys.every((key) => {
      if (typeof obj !== "object" || !obj.hasOwnProperty(key)) return false;
      obj = obj[key];
      return true;
    })
  );
};

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

let obj = {
  a: 1,
  b: { c: 4 },
  "b.d": 5
};

hasKey(obj, ["a"]); // true
hasKey(obj, ["b"]); // true
hasKey(obj, ["b", "c"]); // true
hasKey(obj, ["b.d"]); // true
hasKey(obj, ["d"]); // false
hasKey(obj, ["c"]); // false
hasKey(obj, ["b", "f"]); // false

Резюме

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