Javascript 关于保持填充DOM的顺序与对象顺序相同的问题

Javascript 关于保持填充DOM的顺序与对象顺序相同的问题,javascript,Javascript,我有按这种格式订购的数据集 '10': '1', '10-30': '0', '11': '7', '11-30': '0', '12': '1' 现在我想按照从10到12。但是我不知道为什么12被放在第二步?! 你能看一下这个演示并告诉我为什么会发生这种情况吗 var数据={ '10': '1', '10-30': '0', '11': '7', '11-30': '0', '12': '1' }; 对于(var i=0;i

我有按这种格式订购的数据集

  '10': '1',
  '10-30': '0',
  '11': '7',
  '11-30': '0',
  '12': '1'
现在我想按照从
10
到<代码>12。但是我不知道为什么
12
被放在第二步?! 你能看一下这个演示并告诉我为什么会发生这种情况吗

var数据={
'10': '1',
'10-30': '0',
'11': '7',
'11-30': '0',
'12': '1'
};
对于(var i=0;i

杰拉尔多提到的问题将解释发生这种情况的原因。但是,如果您正在寻找一种方法来恢复它们的顺序,请使用
sort()

var数据={
'10': '1',
'10-30': '0',
'11': '7',
'11-30': '0',
'12': '1'
};
var sorted=Object.keys(data.sort();
对于(变量i=0;i


Hi Gerardo,你在这里添加的帖子只是解释原因,没有提供任何解决方案!请从这篇文章中删除你的副本,因为我正在寻找答案。你好,贝塞尼,我添加了两个重复的目标,这正好解释了这个问题:对象没有键顺序。第一个链接甚至解释了您在这里看到的
Object.keys
的行为。重复目标没有提供任何解决方案(因为没有解决方案)这一事实并不意味着将其作为重复关闭是无效的。您可以编辑您的问题,确认这一点(对象无法保证密钥的顺序),并要求其他解决方案。。。对于这样的编辑,我同意应该重新打开这个问题。作为对我上述评论的补充,你的问题非常清楚:“但我不知道为什么12会被放在第二步?!你能看看这个演示并让我知道为什么会发生这种情况吗?”。你在问为什么。重复的目标解释了原因。如果对象文字有不同的键顺序怎么办?我不太明白你的问题。排序方法将它们按顺序排列,而不管它们的顺序如何。但这不是OP想要的。OP希望键按其在对象文本中的顺序排列(正如标题所说,“与对象顺序相同”)。
sort()
对该序列起作用的事实只是一个巧合。我明白你的意思,我错误地认为OP想要保持它们的顺序。。他们的困境可能是他们从最初的顺序重新排列。在这种情况下,我的回答没有任何帮助。只是想让您看到这是一个不幸的巧合:尝试
console.log(['9','9-30','10','10-30','11','11-30','12'].sort())