elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Comprobar objetos en JS
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Comprobar objetos en JS  (Leído 2,221 veces)
dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Comprobar objetos en JS
« 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.


En línea




T. Collins

Desconectado Desconectado

Mensajes: 206


Ver Perfil
Re: Comprobar objetos en JS
« Respuesta #1 en: 29 Julio 2015, 03:30 am »

Lo primero que se me ha ocurrido, igual hay mejores formas de hacerlo
Código
  1. var txt = "Nombre:";
  2. for(x in obj){ txt += " "+obj[x]; }

Mírate esto: https://developer.mozilla.org/en-US/docs/Web/javascript/Reference/Statements/for...in


« Última modificación: 29 Julio 2015, 03:34 am por T. Collins » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Comprobar objetos en JS
« Respuesta #2 en: 29 Julio 2015, 03:48 am »

correción al codigo de

Código
  1. for(x in obj){ txt += " "+x; }
  2.  

pero puedes salir desorganizado

tambien puedes recurrir a

Código
  1. var txt = "Nombre: " + obj.nombre + ' ' + obj.apellidos != undefined ? obj.apellidos : '' + ' ' + obj.apellidos
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Comprobar objetos en JS
« Respuesta #3 en: 29 Julio 2015, 04:39 am »

correción al codigo de

Código
  1. for(x in obj){ txt += " "+x; }
  2.  

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
  1. if(obj.apellidos !== undefined) {
  2.    //obj.apellidos está definido.
  3. }

Si por ejemplo, estuviera anidado (obj.apellidos.primero por ejemplo), tienes que hacer chequeos en orden o te arriesgas a un TypeError:

Código
  1. if(obj.apellidos !== undefined && obj.apellidos.primero !== undefined) {
  2.    //obj.apellidos y obj.apellidos.primero estan definidos.
  3. }

Undefined tambien es un valor falsey, por lo que puedes escribir así:

Código
  1. if(obj.apellidos){
  2.    //obj.apellidos existe.
  3. }

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.
En línea

eLank0
eLhAcKeR r00Lz


Desconectado Desconectado

Mensajes: 1.062



Ver Perfil WWW
Re: Comprobar objetos en JS
« Respuesta #4 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!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Comprobar sintaxis sql
Programación Visual Basic
elmaro 1 3,216 Último mensaje 28 Noviembre 2007, 18:06 pm
por elmaro
Comprobar si hay ping
Scripting
arca 9 6,686 Último mensaje 28 Octubre 2008, 22:18 pm
por Enemy
comprobar md5 Checksum
Dudas Generales
laraula 4 9,891 Último mensaje 26 Noviembre 2010, 18:05 pm
por laraula
Comprobar inverter
Hardware
Ganejash 3 8,541 Último mensaje 9 Septiembre 2011, 21:43 pm
por imoen
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines