jQuery каждый всегда сортирует это?

У меня есть этот объект в JS:

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

Я запускаю это с:

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

Выход должен быть:

134 - A
140 - B
131 - C

Но я не знаю почему, вывод:

131 - C
134 - A
140 - B

Любая идея, как я могу это исправить?

Ответы на вопрос(4)

Решение Вопроса

этоэто не список, этоs объект. Объект»Заказ не гарантированно будет сохранен - каждая реализация может выбирать разные заказы.

С другой стороны, массивыделать сохранить порядок:

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


jQuery.each(list, function(i, obj) { 
  console.log(i + " - " + obj[0] + " - " + obj[1]);
});
 fdrv11 дек. 2015 г., 19:56
Так как отключить сортировку?

и мне потребовалось 10 минут, чтобы понять.

Вот как бы вы решили свою проблему:

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

// 1 - property to list
list = Object.keys(list).map(
    function(key) {
         return { num : key , char : list[key]};;
     });

console.debug(list);
// 2 - sorting the list
var sorted = list.sort(function(a, b) {
            if(a.char < b.char) return -1; return 1;
        });

// 3 output
jQuery.each(sorted, function(index, obj) {      
        console.log(obj.num + " - " + obj.char);
});

JsFiddle:https://jsfiddle.net/wx38rz5L/1578/

что элементы объекта JavaScript не имеют порядка.

Чтобы исправить это, вы можете использовать два массива: один с ключами, а второй со значениями:

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

$.each(keys, function(i, key) {
    console.log(key, values[i]);
});

.

Механика и порядок перечисления свойств (...) не уточняются.

Источник.

Следовательно, реализации ECMA не должны повторяться в любом порядке. На самом деле порядок меняетсяв разных браузерах / версиях.

Ваш ответ на вопрос