Как проверить, есть ли у объекта свойство в JavaScript?
Рассмотрим:
x = {'key': 1}; if ( x.hasOwnProperty('key') ) { //Do this }
Это лучший способ сделать это?
Вы можете использовать следующие подходы-
var obj = {a:1} console.log('a' in obj) //1 console.log(obj.hasOwnProperty('a')) //2 console.log(Boolean(obj.a)) //3
Разница между следующими подходами заключается в следующем:
var obj = { a:2, __proto__ :{b:2} } console.log('b' in obj) console.log(Boolean(obj.b))
var obj = { a:2, __proto__ :{b:2} } console.log(obj.hasOwnProperty('b'))
var obj = { b : undefined } console.log(Boolean(obj.b)) console.log('b' in obj);
Вам необходимо использовать метод object.hasOwnProperty(property). Возвращает true, если объект имеет свойство, и false, если объект не имеет.
object.hasOwnProperty(property)
я использовал это. что очень помогло мне, если у вас есть объекты внутри объекта
if(typeof(obj["key"])=="string"){ alert("property"); }
Если проверяемый вами ключ хранится в переменной , вы можете проверить это следующим образом:
x = {'key': 1}; y = 'key'; x[y];