【发布时间】:2014-03-18 12:00:37
【问题描述】:
我有一个像这样构建的对象(我们称之为 myObject)(如果你 console.log 它)
>Object {info1: Object, info2: Object, info3: Object, info4: Object,…}
>info1: Object
>info2: Object
Id: 532
someParam: true
>info3: Object
>info4: Object
Id_secondary: 222
如果您检查 info1、info2 的内部(主对象内的对象),它们的结构类似于:
Aparameter: "random info"
Cparameter: "something"
LParameter: "other data"
Surname: "Random Surname"
Username: "Name test"
困扰我的是它们是按字母顺序排列的。
例如,如果我遍历这个给定的对象,我可以看到 info1、info2 中的数据(主对象中的对象)不是按字母顺序排列的。 我检查了这个:
for (var k in myObject)
if (typeof myObject[k] !== 'function') {
if(k == 'info1' || k == 'info2' || k == 'info3' || k == 'info4'){
for (var j in myObject[k]){
if (typeof myObject[k][j] !== 'function' && k == 'info1') {
console.log("Key is " + j + ", value is " + myObject[k][j]);
}
}
// HERE this objects' data are in correct order !
console.log(myObject[k]); <------------------------- see this
}
}
}
如何在 myObject 中保留对象内数据的位置?
任何帮助表示赞赏
【问题讨论】:
-
对象没有顺序。如果您需要订单,则应使用数组。
-
我认为对象不会保留存储在其中的条目的任何顺序。如果你想要一个有序的数据结构,你必须使用一个列表。如果只是按字母顺序打印/记录对象,请列出属性名称,对其进行排序,然后记录值。
-
感谢您的评论。不幸的是,我需要这个对象,因为我只是在更新生产环境(对我来说也是不幸的)。所以我必须转换为数组,排序然后转换回对象?啊,没有更简单的方法吗?
标签: javascript arrays sorting object