使用Javascript按值对JSON数组对象排序
我有一个JSON数组,我正在尝试按值对其排序。我遇到的问题是,我无法在排序时保留JSON结构 以下是JSON数组:使用Javascript按值对JSON数组对象排序,javascript,arrays,json,sorting,Javascript,Arrays,Json,Sorting,我有一个JSON数组,我正在尝试按值对其排序。我遇到的问题是,我无法在排序时保留JSON结构 以下是JSON数组: { caffeineoverdose: '2517', workhardplayhard: '761277', familia: '4633452' } 我想要这样的东西: { familia: '4633452', workhardplayhard: '761277', caffeineoverdose: '2517 } 这不是JSON,也不是数组。它
{
caffeineoverdose: '2517',
workhardplayhard: '761277',
familia: '4633452'
}
我想要这样的东西:
{
familia: '4633452',
workhardplayhard: '761277',
caffeineoverdose: '2517
}
这不是JSON,也不是数组。它是一个常规JavaScript对象,不能对对象的属性进行排序 如果要保持元素的顺序,需要一个数组(同样,这不是JSON,而是JavaScript):
这是您需要的一切。 就像我在评论中已经说过的,你不能对一个对象进行排序。。但您可以将其放入数组并显示结果 演示
您可以将其转换为对象数组:
[{ 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数组”。JSON是数据的字符串表示形式(如XML或CSV)。如果它不是字符串,就不是JSON。其次,这将是一个JavaScript对象(而不是数组)。对象不能在JavaScript中排序,只能使用数组。您希望数据位于数组中,例如:
[{familia:'4633452'},{…}]
。然后您可以对其进行排序。这些是JavaScript对象文本,语法对JSON无效。要添加,您可以对对象进行排序,并将其显示在屏幕上进行排序,但一旦将其定义为对象,您就失去了顺序。看看这是怎么回事!谢谢:)不用array.reverse()
,只需将排序函数更改为b[1]-a[1]
。不适用于{string:string}的json数组
[{ name: 'caffeineoverdose', number: '2517' }, {name: 'workhardplayhard', number: '761277'}, {name: 'familia', number: '4633452'}]
array.sort(function(a,b){
return a.number - b.number;
}
);