Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript按值对JSON数组对象排序_Javascript_Arrays_Json_Sorting - Fatal编程技术网

使用Javascript按值对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,也不是数组。它

我有一个JSON数组,我正在尝试按值对其排序。我遇到的问题是,我无法在排序时保留JSON结构

以下是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;
    }
);