Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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_Json_Sorting - Fatal编程技术网

用Javascript排序JSON

用Javascript排序JSON,javascript,json,sorting,Javascript,Json,Sorting,考虑到我有下面的JSON,我如何生成另一个JSON,按字段排序(比如anocbranca) 我尝试了一些技巧,如: function sortJSON(a,b){ return parseInt(a.json.extratos.anoCobranca - b.json.extratos.anoCobranca) } 还有一些我在StackOverflow找到的,但都失败了。使用回调函数对数组排序: obj.extratos.sort(function(a, b) { return a.

考虑到我有下面的JSON,我如何生成另一个JSON,按字段排序(比如
anocbranca

我尝试了一些技巧,如:

function sortJSON(a,b){
  return parseInt(a.json.extratos.anoCobranca - b.json.extratos.anoCobranca)
}

还有一些我在StackOverflow找到的,但都失败了。

使用回调函数对数组排序:

obj.extratos.sort(function(a, b) {
  return a.anoCobranca - b.anoCobranca;
});

如果您不反对使用外部库,那么我建议您使用来解决此问题和类似问题。下面是我在下面一行中做这件事的一个例子:

var model = {
  "extratos": [
    {
      "descricao":         "product A",
      "anoCobranca":       2012,

            .
            .
            .

      "situacao":          "aberto"
    }
  ]
};

model.extratos = _.sortBy(model.extratos, 
                   function (extrato) { return extrato.anoCobranca; });

console.log(model);
这里有一个JSFIDLE,您可以使用它:

Yanick的解决方案也是一个很好的解决方案,但我认为下划线库具有广泛的功能(例如,map和reduce),可以帮助您解决一组复杂的数据操作问题,而不仅仅是简单的排序。

使用下划线库,您只需执行以下操作:

_(obj.extratos).pluck(propertyName).sort() 
_(obj.extratos).pluck(propertyName).sort()