El objeto Javascript se ordena automáticamente
Frecuentes
Visto 2,285 equipos
0
// mechanics
MECHANICS_ISOLATION : 1,
MECHANICS_NA : 2,
MECHANICS_COMPOUND : 3,
// mechanics
Exercise.mechanics = {};
Exercise.mechanics[Exercise.MECHANICS_COMPOUND] = 'Compound';
Exercise.mechanics[Exercise.MECHANICS_ISOLATION] = 'Isolation';
Exercise.mechanics[Exercise.MECHANICS_NA] = 'N/A';
Cuando doy vueltas Exercise.mechanics
, las llaves salen ordenadas. ¿Cómo puedo hacer que las claves no clasificadas se reproduzcan?
¡Gracias!
2 Respuestas
2
Las claves en un hashmap no son confiables. Darle las llaves una orden. Por ejemplo, coloque sus claves en una matriz e itere las claves.
var keys = [MECHANICS_ISOLATION, MECHANICS_NA, MECHANICS_COMPOUND];
for (var i = 0; i < keys.length; i++) {
console.log(Exercise.mechanics[keys[i]]);
}
Respondido el 12 de junio de 12 a las 08:06
Sigo escuchando eso, pero nunca he visto un ejemplo de no obtener FiFo: mplungjan
Eso depende de las implementaciones. Debemos seguir los contratos de hashmap. Tal vez la mayoría de los hashmaps son FIFO, aún así no deberíamos confiar en eso ya que no es el contrato, puede romperse fácilmente en el futuro. - jeffrey zhao
-1
¿Cuál es el orden que esperas? Los obtengo desordenados en Fx e IE
3:Compound
1:Isolation
2:N/A
usando este código DEMO
Exercise = {
// mechanics
MECHANICS_ISOLATION : 1,
MECHANICS_NA : 2,
MECHANICS_COMPOUND : 3,
}
// mechanics
Exercise.mechanics = {};
Exercise.mechanics[Exercise.MECHANICS_COMPOUND] = 'Compound';
Exercise.mechanics[Exercise.MECHANICS_ISOLATION] = 'Isolation';
Exercise.mechanics[Exercise.MECHANICS_NA] = 'N/A';
for (ex in Exercise.mechanics) document.write("<hr>"+ex+":"+Exercise.mechanics[ex])
Respondido el 12 de junio de 12 a las 08:06
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas javascript sorting object or haz tu propia pregunta.
¿Qué orden? DEMO - mplungjan