Nuestros mejores programadores agotaron sus reservas de café, buscando noche y día por la resolución, hasta que Aurora halló la contestación en GitLab así que en este momento la compartimos contigo.
Solución:
El objeto tiene propiedad:
Si está probando propiedades que están en el objeto en sí (que no son parte de su cadena de prototipos), puede usar .hasOwnProperty()
:
if (x.hasOwnProperty('y'))
// ......
El objeto o su prototipo tiene una propiedad:
Puedes usar el in
operador para probar las propiedades que también se heredan.
if ('y' in x)
// ......
Si quieres saber si el objeto físicamente contiene la propiedad @ gnarf’s answer usando hasOwnProperty
hará el trabajo.
Si desea saber si la propiedad existe en algún lugar, ya sea en el objeto en sí o en la cadena del prototipo, puede usar el in
operador.
if ('prop' in obj)
// ...
P.ej.:
var obj = ;
'toString' in obj == true; // inherited from Object.prototype
obj.hasOwnProperty('toString') == false; // doesn't contains it physically
Underscore.js o Lodash
if (_.has(x, "y")) ...
🙂
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)