Sort JavaScript Object on keys
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Sort JavaScript object by key
1 2 3 4 5 6 7 8 9 10 11 12 13 | { "0": 3900, "1": 42, "10": 135, "2": 5, "3": 20, "4": 33, "5": 24, "6": 35, "7": 56, "8": 60, "9": 147 } |
如何根据键整数类型对javascript键进行排序。对于上述输入,最终输出的格式应为
1 2 3 4 5 6 7 8 9 10 11 12 13 | { 0: 39, 1: 42, 2: 5, 3: 20, 4: 33, 5: 24, 6: 35, 7: 56, 8: 60, 9: 147, 10: 135, } |
这是一个javascript对象。它们无法分类。
例如,无论元素的放置顺序如何,在代码中,当您记录对象时,Google Chrome都会自动对它们进行排序。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | var obj = { "0": 3900, "1": 42, "10": 135, // See? not sorted. "2": 5, "3": 20, "4": 33, "5": 24, "6": 35, "7": 56, "8": 60, "9": 147 } for(key in obj){ console.log(key, obj[key]); } |
输出:
1 2 3 4 5 6 7 8 9 10 11 | 0 3900 1 42 2 5 3 20 4 33 5 24 6 35 7 56 8 60 9 147 10 135 // Suddenly, without our intervention, the object got sorted by the browser. |
所以,我想说的是:它依赖于浏览器。不能对对象排序。它取决于浏览器实现如何迭代对象。
现在,在这个特定的例子中,我认为最好使用一个数组,因为键是序列号,无论如何:
1 | var arr = [3900, 42, 5, 20, 33, 24, 35, 56, 60, 147, 135]; |
您可以像访问对象(