Estoy tratando de verificar la propiedad de un objeto, pero no puedo entender por qué la segunda opción devuelve falso. ¿Alguien podría explicarlo? Además, ¿hay otras formas mejores de verificar las propiedades?
let question = { category: 'test' } console.log(question.hasOwnProperty('category')); // trueesto no funcionará
let question = { category: 'test' } console.log(question.hasOwnProperty(question.category)); // false const obj = { foo: 'bar', }; // Check if an object has a certain key somewhere console.log('foo' in obj); console.log(!!obj['foo']); console.log(obj.hasOwnProperty('foo')) // Check if an object has a certain value somewhere console.log(Object.values(obj).includes('bar'));En esta línea:
question.hasOwnProperty(question.category)
La parte question.category devuelve 'test' y no tiene 'test' como propiedad, simplemente déjelo así:
question.hasOwnProperty(category)
También puede verificar la propiedad usando:
'category' in question