我有一个 JSON 数组,想要按值进行排序。问题是我无法在排序时保持 JSON 结构。
以下是 JSON 数组:
{
caffeineoverdose: '2517',
workhardplayhard: '761277',
familia: '4633452'
}
我想要类似这样的东西:
{
familia: '4633452',
workhardplayhard: '761277',
caffeineoverdose: '2517
}
我有一个 JSON 数组,想要按值进行排序。问题是我无法在排序时保持 JSON 结构。
以下是 JSON 数组:
{
caffeineoverdose: '2517',
workhardplayhard: '761277',
familia: '4633452'
}
我想要类似这样的东西:
{
familia: '4633452',
workhardplayhard: '761277',
caffeineoverdose: '2517
}
这里有你所需的一切。
就像我在评论中已经说过的那样,您无法对对象进行排序。但您可以将其放入数组中并显示结果。
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();
演示
array.reverse()
,您可以将排序函数更改为 b[1] - a[1]
。 - gen_Eric你可以将它转换为一个对象数组:
[{ name: 'caffeineoverdose', number: '2517' }, {name: 'workhardplayhard', number: '761277'}, {name: 'familia', number: '4633452'}]
然后按数字排序
array.sort(function(a,b){
return a.number - b.number;
}
);
这不是JSON,也不是数组。它是一个普通的JavaScript对象,你无法对对象的属性强制排序。
如果你想保持元素的顺序,你需要一个数组(同样,这不是JSON,而是JavaScript):
[ [ 'familia', '4633452'] ,
[ 'workhardplayhard', '761277'],
[ 'caffeineoverdose', '2517']
]
[{familia: '4633452'}, {...}]
。然后你可以对它进行排序。 - gen_Eric