Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

171
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!