Javascript 在对象中放置键值对-为什么它按#对条目排序?

Javascript 在对象中放置键值对-为什么它按#对条目排序?,javascript,arrays,object,Javascript,Arrays,Object,下面是我的代码。我把一个数字作为键值对放入一个对象中。我很好奇为什么它会按#排序结果。例如,为什么数组中的'13':26条目位于'21':42之前,而13位于21之后?谢谢你的洞察力 var array = [1,2,3,4,5,8,7,21,13]; var object = {}; for (var i = 0; i < array.length; i++){ object[array[i]] = double(array[i]); } function double(a){ re

下面是我的代码。我把一个数字作为键值对放入一个对象中。我很好奇为什么它会按#排序结果。例如,为什么数组中的'13':26条目位于'21':42之前,而13位于21之后?谢谢你的洞察力

var array = [1,2,3,4,5,8,7,21,13];
var object = {};

for (var i = 0; i < array.length; i++){
object[array[i]] = double(array[i]);
}

function double(a){
return a*2;
}

console.log(object);

JavaScript对象通常不按顺序排列,您不应该依赖于要按顺序排列的属性。您可以尝试此代码段以按顺序获得结果:

var数组=[1,2,3,4,5,8,7,21,13];
var对象={};
对于(var i=0;ilog(JSON.stringify(object))你好,谢谢你的回复。您的代码片段产生的结果与我的相同。我在问为什么我的代码会对结果进行排序。@AugustusBrennan我已经更新了我的答案,希望它现在更有意义。JavaScript有时会让人困惑(但很有趣)。
{ '1': 2,
'2': 4,
'3': 6,
'4': 8,
'5': 10,
'7': 14,
'8': 16,
'13': 26,
'21': 42 }