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

Beginner

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

Введение

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

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, чтобы улучшить свои навыки.