Título: Comprobar objetos en JS Publicado por: dimitrix en 29 Julio 2015, 02:49 am Pues... a ver, tengo un objeto que en ocasiones tiene:
obj.nombre obj.apellidos obj.edad Y en otras es sólo: obj.nombre obj.edad Lo que me gustaría saber, es cual es el camino más rápido para hacer esto txt = 'Nombre: '+obj.nombre+' '+obj.apellidos+' '+obj.edad El problema de esto es que si no existe obj.apellidos el JS da error y se para, por lo que me gustaría saber cual es el camino más rápido para hacer estas cosas. Ya que poner un typeof creo que no lo sería. PD: Esto es un ejemplo. Título: Re: Comprobar objetos en JS Publicado por: T. Collins en 29 Julio 2015, 03:30 am Lo primero que se me ha ocurrido, igual hay mejores formas de hacerlo
Código
Mírate esto: https://developer.mozilla.org/en-US/docs/Web/javascript/Reference/Statements/for...in (https://developer.mozilla.org/en-US/docs/Web/javascript/Reference/Statements/for...in) Título: Re: Comprobar objetos en JS Publicado por: engel lex en 29 Julio 2015, 03:48 am correción al codigo de
Código
pero puedes salir desorganizado tambien puedes recurrir a Código
Título: Re: Comprobar objetos en JS Publicado por: MinusFour en 29 Julio 2015, 04:39 am correción al codigo de Código
pero puedes salir desorganizado El codigo de T. Collins es correcto. x es el nombre de la propiedad así que eso simplemente concatena los nombres de las propiedades del objeto, no los valores de las propiedades. El problema es tal y como comentas, el orden no es seguro. Si quieres comprobar que una variable este definida la comparas contra undefined: Código
Si por ejemplo, estuviera anidado (obj.apellidos.primero por ejemplo), tienes que hacer chequeos en orden o te arriesgas a un TypeError: Código
Undefined tambien es un valor falsey, por lo que puedes escribir así: Código
El único problema es que hay otros valores que tambien son falsey (0, '', false, null, NaN). Si esos valores no pueden ser apellidos, entonces no tienes ningún problema. Título: Re: Comprobar objetos en JS Publicado por: eLank0 en 29 Julio 2015, 09:59 am Lo más fácil es:
Código: txt = 'Nombre: '+ (obj.nombre || '') +' '+ (obj.apellidos || '') + ''+ (obj.edad || '') En este caso en caso de ser undefined no pondrá nada. Salu2! |