如何按字典顺序对这个对象进行排序:
var obj = {'somekey_B' : 'itsvalue', 'somekey_A' : 'itsvalue');
所以它的输出是这样的:
for (k in obj) {
alert(k + ' : ' + obj[k]); //first "somekey_A : itsvalue"; then "somekey_B : itsvalue"
}
最佳答案
你不能。 for..in
循环遍历属性名称的顺序是特定于实现的,无法控制。您唯一的选择是以某种方式自己组织属性,例如构建一个键数组然后对其进行排序,例如:
var keys, index;
keys = [];
for (k in obj) {
keys.push(k);
}
keys.sort();
for (index = 0; in dex < keys.length; ++index) {
k = keys[index];
alert(k + ' : ' + obj[k]); //first "somekey_A : itsvalue"; then "somekey_B : itsvalue"
}
当然,您可以将它放在对象的函数中,并使用它来遍历键。或者,您可以在对象本身上保留一个排序数组,前提是您在创建新属性时保持它是最新的。
关于javascript - 排序对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2943766/