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

113
Views
Orden de las teclas en la vista expandida frente a la contraída en la consola de Chrome

Mientras trabajaba en otro problema , me engañó el hecho de que Chrome (y quizás otros navegadores) de alguna manera ordena mágicamente las claves de un objeto cuando lo envía a la consola:

 let inputs = ["XMl", "SFJ", "dTg", "amN"]; let promises = {}; for (let val of inputs) { let p = new Promise( (resolve) => setTimeout(resolve, 500 + Math.random() * 1500, "new:" + val) ); promises[val] = p } console.log(promises) Promise.allSettled(Object.values(promises)).then((res) => console.log(res))

Ahora el navegador (Chrome) me muestra:

ingrese la descripción de la imagen aquí

Entonces, hay una diferencia entre la salida expandida y colapsada. ¿Es ese el comportamiento estándar? ¿De donde viene esto?

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

0

Aquí hay una réplica más simple del problema:

 const obj = { XMl: 1, SFJ: 1, dTg: 1, amN: 1, }; console.log(obj);

Por lo que obtengo:

captura de pantalla del objeto devtools con el orden descrito a continuación

El resumen parece mostrarse en orden de propiedad (más sobre eso en un momento), pero luego, cuando se muestran los detalles del objeto, las herramientas de desarrollo de Chrome muestran las propiedades en orden alfabético (incluida la agrupación de mayúsculas; se parece mucho al orden simple < y > haría, en lugar de localeCompare o similar). Firefox tiene un aspecto similar.

El primero está cubierto por la especificación de JavaScript ( detalles aquí ). No creo que haya ningún estándar que cubra el segundo, pero si lo piensas bien, el orden alfa probablemente sea más útil que el orden de propiedades cuando intentas encontrar una propiedad en un objeto con muchas propiedades. El orden de las propiedades es complicado y solo se basa principalmente en el orden en que se crearon las propiedades, por lo que puede parecer caótico. Y agrupar las mayúsculas categoriza ligeramente, dada la convención de JavaScript de que las letras mayúsculas iniciales se reservan casi por completo para las funciones de construcción y todas las mayúsculas constantes.


Originalmente usó el término "matriz asociativa" en lugar de objeto. Como mencioné en un comentario, en realidad son objetos, no solo matrices asociativas. Si quisiera simplemente un estilo básico de pares de nombre/valor de "mapa", sería un Map y el orden de las entradas del mapa es agradable y simple: es el orden en que se creó la entrada. Si hacemos lo mismo que hicimos anteriormente pero con un Map , tanto el resumen como el detalle muestran la información en el mismo orden:

 const map = new Map([ ["XMl", 1], ["SFJ", 1], ["dTg", 1], ["amN", 1], ]); console.log(map);

Captura de pantalla del objeto de mapa de devtools que muestra el mismo orden en resumen y detalle

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!