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

98
Views
el registro de la consola muestra un valor diferente al que devuelve el valor

Obtengo dos resultados diferentes dependiendo de si registro los resultados dentro de la función o si los devuelvo y registro la variable y no entiendo por qué. ¿No deberían ser iguales?

 const collectionMap = { '615679ba94212894224f547c': 'Value One', '615679ba94212894224f5480': 'Value Two', '615679ba94212894224f5482': 'Value Three', '615679ba94212894224f5486': 'Value Four', '615679ba94212894224f548a': 'Value Five', '615679bb94212894224f548e': 'Value Six', } let id = '615679bb94212894224f548e' // this will log the key const collection = Object.keys(collectionMap).find((key) => { if (key === id) return collectionMap[key]; }); console.log(collection); // this will log the value const collection2 = Object.keys(collectionMap).find((key) => { if (key === id) console.log(collectionMap[key]); });

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

El método Array find devuelve el primer elemento para el que el iterador devuelve un valor verdadero. Para los primeros cinco valores, el valor devuelto no está definido y para el sexto devuelve 'Value Six' (una cadena no vacía). Esa cadena no vacía se convierte en un valor booleano (pruebe !!'Value Six' ) y el resultado es true . Por lo tanto, se devuelve esa clave y eso es lo que imprime.

En el segundo caso, solo está abusando de find para hacer lo que forEach está destinado.

about 4 years ago · Juan Pablo Isaza Report

0

en la primera declaración, la función guardó la clave en "colección", pero en la segunda declaración, la función no guardó el valor, en lugar de esto, registró su valor

si escribes esto en la consola:

 const collection3 = Object.keys(collectionMap).find((key) => { console.log(key); });

JS hará un bucle en las claves de collectionMap y lo registrará

ingrese la descripción de la imagen aquí

pero para que quede claro, si escribió esto en la consola:

 console.log(collectionMap["615679bb94212894224f548e"])

JS registrará "Value Six", eso es porque JS buscó en "615679bb94212894224f548e" en collectionMap para multar su valor

así que si escribes este código:

 const collection4 = Object.keys(collectionMap).find((key) => { console.log(collectionMap[key]); });

esto es lo que pasara tras bambalinas:

  1. collectionMap["615679ba94212894224f547c"] => Valor Uno
  2. collectionMap["615679ba94212894224f5480"] => Valor dos
  3. collectionMap["615679ba94212894224f5482"] => Valor tres
  4. collectionMap["615679ba94212894224f5486"] => Valor Cuatro
  5. collectionMap["615679ba94212894224f548a"] => Valor Cinco
  6. collectionMap["615679bb94212894224f548e"] => Valor Seis
about 4 years ago · Juan Pablo Isaza Report

0

.find devolverá el elemento en la matriz (la matriz de claves) donde el valor de la función de devolución de llamada es true . Así que realmente devuelve la key .

El valor que está registrando en la console.log es el value .

about 4 years ago · Juan Pablo Isaza 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!