Menu
Coddy logo textTech

Проверка наличия ключа

Часть раздела Логика и поток путешествия по JavaScript на Coddy — урок 16 из 65.

Чтобы проверить наличие определенного ключа в объекте JSON, используйте либо оператор in, либо метод hasOwnProperty(). Например:

const product = { "name": "Laptop", "price": 900 };
if ("price" in product) {
  console.log("Key exists!");
}

if (product.hasOwnProperty("price")) {
  console.log("Key exists!");
}

Это удобно при проверке наличия определенных данных перед обработкой.

obj.hasOwnProperty("key") вернет false, если obj не имеет key в качестве собственного свойства. Однако obj.key === undefined не обязательно означает, что hasOwnProperty("key") вернет false. Существует два случая, когда obj.key равно undefined:

  • Свойство вообще не существует → hasOwnProperty("key") возвращает false.
  • Свойство существует, но имеет значение undefinedhasOwnProperty("key") возвращает true.

Например:

const obj1 = {};  
console.log(obj1.key); // undefined
console.log(obj1.hasOwnProperty("key"));
// false

const obj2 = { key: undefined };
console.log(obj2.key); // undefined
console.log(obj2.hasOwnProperty("key"));
// true
challenge icon

Задание

Легко

Создайте функцию с именем toggleBookStatus, которая принимает объект книги в качестве параметра. Функция должна:

  1. Если у книги есть свойство isRead со значением true, измените его на false
  2. Если у книги есть свойство isRead со значением false, измените его на true
  3. Если у книги нет свойства isRead, добавьте его и установите значение true
  4. Верните измененный объект книги

Шпаргалка

Чтобы проверить наличие определенного ключа в объекте JSON, используйте оператор in или метод hasOwnProperty():

const product = { "name": "Laptop", "price": 900 };

// Использование оператора 'in'
if ("price" in product) {
  console.log("Key exists!");
}

// Использование hasOwnProperty()
if (product.hasOwnProperty("price")) {
  console.log("Key exists!");
}

hasOwnProperty() возвращает true, если свойство существует (даже если его значение равно undefined), и false, если свойство отсутствует:

const obj1 = {};  
console.log(obj1.hasOwnProperty("key")); // false

const obj2 = { key: undefined };
console.log(obj2.hasOwnProperty("key")); // true

Попробуйте сами

function toggleBookStatus(book) {
    // Напишите свой код здесь
}
// Не пишите ничего вне функции
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и поток