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

170
Vistas
verificar la existencia de una clave en matrices asociativas

Dime, ¿cómo verificar correctamente la existencia de una clave en matrices asociativas?

Por ejemplo:

 var mydata = { key1: '', key2: { subkey1: { subkey1_1: { value1: '' value2" '', }, }, subkey2: ''; }, } if ((mydata.key2 != undefined) && (mydata.key2.subkey1 != undefined) && (mydata.key2.subkey1.subkey1_1 != undefined)) mydata.key2.subkey1.subkey1_1.value1 = 'test';

Demasiado largo y confuso

 ((mydata.key2 != undefined) && (mydata.key2.subkey1 != undefined) && (mydata.key2.subkey1.subkey1_1 != undefined))

Me gustaría usar una función más simple, como

 safeSet(mydata.key2.subkey1.subkey1_1.value1, 'test');

o

 if (is_undefined(mydata.key2.subkey1.subkey1_1.value1) == true) mydata.key2.subkey1.subkey1_1.value1 = 'test'; // now - error if 'mydata.key2.subkey1.subkey1_1' not exist
about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Puede crear una función personalizada usando reduce() para probar si existe una propiedad anidada. Simplemente puede pasar la clave como una cadena.

 var mydata = { key1: '', key2: { subkey1: { subkey1_1: { value1: '', value2: '', }, }, subkey2: '' }, } function safeSet(key, data) { return key.split('.').reduce(function(r, e) { return r ? r[e] : undefined; }, data) != undefined } console.log(safeSet('key2.subkey1.subkey1_1.value1', mydata))

about 4 years ago · Santiago Trujillo Denunciar

0

Debes usar el operador in:

 "key" in obj // true, regardless of the actual value

O, si desea probar particularmente las propiedades de la instancia del objeto (y no las propiedades heredadas), use hasOwnProperty:

 obj.hasOwnProperty("key") // true

Espero que esto te ayude.

Fuente: http://www.advancesharp.com/questions/628/checking-if-an-associative-array-key-exists-in-javascript

about 4 years ago · Santiago Trujillo Denunciar

0

Como alternativa, puede utilizar el método .has() de Lodash . Entonces, solo tendrías que comprobar:

 if (_.has(mydata, 'key2.subkey1.subkey1_1.value1') mydata.key2.subkey1.subkey1_1.value1 = 'test';
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