tengo una tabla hash Javascript, así:¿Cómo puedo ordenar una tabla hash en Javascript?
var things = [ ];
things["hello"] = {"name" : "zzz I fell asleep", "number" : 7};
things["one"] = {"name" : "something", "number" : 18};
things["two"] = {"name" : "another thing", "number" : -2};
que desea ordenar estos en orden por nombre, por lo que si una iteración en la tabla hash se irá con el fin
another thing
something
zzz I fell asleep
I intentado hacer esto:
function compareThings(thing1, thing2) {
var name1 = thing1["name"].toLowerCase();
var name2 = thing2["name"].toLowerCase();
if (name1 < name2) {
return -1;
}
if (name1 > name2) {
return 1;
}
return 0;
}
things.sort(compareThings);
Pero parece que no funciona.
Editar: se me ocurre que quizás una tabla hash ordenada es un oxímoron. Si es así, ¿cuál es la mejor manera de obtener acceso a una lista ordenada de las cosas aquí?
No está teniendo un hastable (también conocido como objeto) ni una matriz adecuada. Si quieres tener un objeto, debes inicializarlo con '{}' no con '[]'. Si inicializas con '[]' tienes una matriz, pero luego no la agregas mediante 'a [" uno "]' y 'a [" dos "]' sino por 'a.push (...); '. Solo después de saber qué estructura de datos desea, ¿puede preocuparse por la clasificación? (Por cierto: 'foo [" bar "]' es lo mismo que 'foo.bar', use el segundo, no obstruye el código con literales de cadena y muchos corchetes) –