Как проверить наличие ключа в объекте на javascript?

Пользователь

от felix , в категории: JavaScript , 3 года назад

Как проверить наличие ключа в объекте на javascript?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от amaya_bahringer , 2 года назад

@felix 

Наиболее распространенным способом проверить наличие ключа в объекте на JavaScript является использование оператора in. Он возвращает true, если ключ существует в объекте, и false, если нет. Например:

1
2
3
4
5
6
7
const obj = { key: 'value' };

if ('key' in obj) {
  console.log('Ключ "key" существует в объекте obj');
} else {
  console.log('Ключ "key" не существует в объекте obj');
}


Вы можете также использовать метод hasOwnProperty() объекта Object, чтобы проверить, содержит ли объект указанное свойство как собственное (то есть, не унаследованное). Например:

1
2
3
4
5
if (obj.hasOwnProperty('key')) {
  console.log('Ключ "key" существует в объекте obj');
} else {
  console.log('Ключ "key" не существует в объекте obj');
}


Оба этих способа работают для проверки наличия ключа в любом объекте, в том числе в объектах-прототипах.


Однако, если вы хотите пр

Пользователь

от ludie , 2 года назад

@felix 

Вы можете использовать оператор in для проверки наличия ключа в объекте. Например:

1
2
3
const obj = { a: 1, b: 2, c: 3 };
console.log("a" in obj); // true
console.log("d" in obj); // false


Или можно использовать метод Object.prototype.hasOwnProperty(), который возвращает Boolean значение, указывающее, содержит ли объект свойство с указанным именем:

1
2
console.log(obj.hasOwnProperty("a")); // true
console.log(obj.hasOwnProperty("d")); // false


Или можно использовать Object.prototype.propertyIsEnumerable() для проверки ключа или свойства объекта:

1
2
console.log(obj.propertyIsEnumerable("a")); // true
console.log(obj.propertyIsEnumerable("d")); // false


Или можно использовать Object.keys() который возвращает массив со всеми ключами существующими в объекте:

1
2
console.log(Object.keys(obj).includes("a")); // true
console.log(Object.keys(obj).includes("d")); // false