js创建对象的排序问题

我想生成一个对象,代码如下:

var o={}
for(i=1;i<10;i++){
    for(j=1;j<5;j++){
        o["aa_"+j+"_ss_"+i+"_oo"]= null
    }
}

console.log(o)

这样生成出来的排序是

aa_1_ss_1_oo: null
aa_1_ss_2_oo: null
aa_1_ss_3_oo: null
aa_1_ss_4_oo: null
aa_1_ss_5_oo: null
aa_1_ss_6_oo: null
aa_1_ss_7_oo: null
aa_1_ss_8_oo: null
aa_1_ss_9_oo: null
aa_2_ss_1_oo: null
aa_2_ss_2_oo: null
aa_2_ss_3_oo: null
aa_2_ss_4_oo: null
aa_2_ss_5_oo: null
aa_2_ss_6_oo: null
aa_2_ss_7_oo: null
aa_2_ss_8_oo: null
aa_2_ss_9_oo: null
aa_3_ss_1_oo: null
aa_3_ss_2_oo: null
aa_3_ss_3_oo: null
aa_3_ss_4_oo: null
aa_3_ss_5_oo: null
aa_3_ss_6_oo: null
aa_3_ss_7_oo: null
aa_3_ss_8_oo: null
aa_3_ss_9_oo: null
aa_4_ss_1_oo: null
aa_4_ss_2_oo: null
aa_4_ss_3_oo: null
aa_4_ss_4_oo: null
aa_4_ss_5_oo: null
aa_4_ss_6_oo: null
aa_4_ss_7_oo: null
aa_4_ss_8_oo: null
aa_4_ss_9_oo: null

而我想要的顺序是这样的

aa_1_ss_1_oo: null
aa_2_ss_1_oo: null
aa_3_ss_1_oo: null
aa_4_ss_1_oo: null

aa_1_ss_2_oo: null
aa_2_ss_2_oo: null
aa_3_ss_2_oo: null
aa_4_ss_2_oo: null

aa_1_ss_3_oo: null
aa_2_ss_3_oo: null
aa_3_ss_3_oo: null
aa_4_ss_3_oo: null

。。。。。。

请问朋友,该怎么改?

阅读 2.5k
3 个回答

顺序一般是针对数组的,对象是没有顺序的。

var arr=[];
for(i=1;i<10;i++){
  for(j=1;j<5;j++){
    var o={};
    o["aa_"+j+"_ss_"+i+"_oo"]= null
    arr.push(o)
  }
}
console.log(arr)

对象内的排序你是改不了的
另外,你这个要求实在比较奇怪,你想要按照你的要求输出,你直接就照着你的列表输出就行了啊,这和对象内部属性排序没什么关系啊.

这是浏览器自动排序造成的 测试一下就知道原因了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏