bas*_*nt0 8 javascript arrays sorting json
我有一个JSON数组,我试图按值排序.我遇到的问题是我无法通过排序保留JSON结构.
这是JSON数组:
{
caffeineoverdose: '2517',
workhardplayhard: '761277',
familia: '4633452'
}
Run Code Online (Sandbox Code Playgroud)
我想要这样的东西:
{
familia: '4633452',
workhardplayhard: '761277',
caffeineoverdose: '2517
}
Run Code Online (Sandbox Code Playgroud)
coc*_*cco 19
这是你需要的一切.
就像我在评论中已经说过的那样你不能对一个对象进行排序..但是你可以把它放到一个数组中并显示结果.
var array=[],obj={
caffeineoverdose:'2517',
workhardplayhard:'761277',
familia:'4633452'
};
for(a in obj){
array.push([a,obj[a]])
}
array.sort(function(a,b){return a[1] - b[1]});
array.reverse();
Run Code Online (Sandbox Code Playgroud)
DEMO
您可以将其转换为对象数组:
[{ name: 'caffeineoverdose', number: '2517' }, {name: 'workhardplayhard', number: '761277'}, {name: 'familia', number: '4633452'}]
Run Code Online (Sandbox Code Playgroud)
然后按编号排序
array.sort(function(a,b){
return a.number - b.number;
}
);
Run Code Online (Sandbox Code Playgroud)
这不是JSON,它不是一个数组.它是一个常规JavaScript对象,您不能对对象的属性强加排序.
如果要维护元素的顺序,则需要一个数组(同样,这不是JSON,而是JavaScript):
[ [ 'familia', '4633452'] ,
[ 'workhardplayhard', '761277'],
[ 'caffeineoverdose', '2517']
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
55938 次 |
| 最近记录: |