Klian Klian - 3 months ago 9
jQuery Question

jQuery each always sort it?

I have this object in JS:

var list = {134 : "A",140 : "B",131 : "C"}


I run it with:

jQuery.each(list, function(key, value) {
console.log(key + " - " + value);
});


The output should be:

134 - A
140 - B
131 - C


But I dont know why, the output is:

131 - C
134 - A
140 - B


Any idea how can I fix it ?

Answer

First off: that's not a list, it's an object. Object's order is not guaranteed to be kept - each implementation may choose a different ordering.

On the other hand, arrays do preserve order:

var list = [[134, "A"],[140, "B"],[131, "C"]];


jQuery.each(list, function(i, obj) { 
  console.log(i + " - " + obj[0] + " - " + obj[1]);
});
Comments