Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

120
Vistas
La mejor manera de verificar un atributo de un objeto que podría no estar definido

Tengo un objeto (oUsed) que contiene campos "bloqueados" de una cuadrícula. Si un campo está bloqueado, es "verdadero". Si no está bloqueado, es indefinido.

Lo que puede suceder ahora es que una línea completa (valor de la coordenada x) no esté bloqueada. Entonces, el siguiente código fallará, ya que verifica el atributo de un objeto indefinido.

 let oUsed = { "x1":{ "y2": true; "y3": true; } "x3":{ "y2": true; } } let iY = 2; for (let iX=1;iX <= 3; iX++) { if (oUsed[`x${iX}`][`x${iY}`]) { break; } }

Hacerlo en dos pasos funciona, pero no es muy bonito.

 for (let iX=1;iX <= 3; iX++) { if (oUsed[`x${iX}`]) { if (oUsed[`x${iX}`][`x${iY}`]) { break; } } }

¿Cuál es la mejor práctica para este tipo de verificación?

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Use Object.hasOwnProperty u Object.hasOwn

 if (oUsed.hasOwnProperty(`x${iX}`) && oUsed[`x${iX}`][`x${iY}`])

o

usar así

 if (oUsed[`x${iX}`] && oUsed[`x${iX}`][`x${iY}`]) {

o si su navegador de destino admite el encadenamiento opcional

 if (oUsed[`x${iX}`]?.[`x${iY}`])
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda