{
"0": 3900,
"1": 42,
"10": 135,
"2": 5,
"3": 20,
"4": 33,
"5": 24,
"6": 35,
"7": 56,
"8": 60,
"9": 147
}
如何根据键整数Type对javascript键进行排序。 对于上面给出的输入,最终输出应该是
的格式{
0: 39,
1: 42,
2: 5,
3: 20,
4: 33,
5: 24,
6: 35,
7: 56,
8: 60,
9: 147,
10: 135,
}
答案 0 :(得分:1)
这是一个JavaScript对象。它们无法排序。
例如,无论您将元素放入何种顺序,在代码中,Google Chrome都会在您记录对象时自动对其进行排序。
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]);
}
输出:
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.
所以,我想说的是:它依赖于浏览器。您无法对对象进行排序。这取决于浏览器实现如何迭代对象。
现在,在这种特殊情况下,我认为使用数组更好一点,因为键是连续数字,无论如何:
var arr = [3900, 42, 5, 20, 33, 24, 35, 56, 60, 147, 135];
您可以像访问对象一样访问此对象(arr[5] == 24
),另外还有.length
!