在Javascript中对嵌套的JSON数组进行排序

时间:2016-06-24 18:18:02

标签: javascript arrays json sorting

我有一个名为“wordsArray”的数组,包含5000个单词。我正在寻找一种解决方案,根据“Word”。“id”对这个数组进行排序。我们还有“项目”。“id”在我们的案例中并不重要。 这是数组的JSON格式:

{
    "Word":
        {"id":"1","project_id":"2"},
    "Project":
        {"id":"2","name":"Web"}
},{
    "Word":
        {"id":"4","project_id":"2"},
    "Project":
        {"id":"2","name":"Web"}
},{
    "Word":
        {"id":"2","project_id":"2"},
    "Project":
        {"id":"2","name":"Web"}
},{
    "Word":
        {"id":"3","project_id":"2"},
    "Project":
        {"id":"2","name":"Web"}
};

排序后,它应该是这样的:

{
    "Word":
        {"id":"1","project_id":"2"},
    "Project":
        {"id":"2","name":"Web"}
},{
    "Word":
        {"id":"2","project_id":"2"},
    "Project":
        {"id":"2","name":"Web"}
},{
    "Word":
        {"id":"3","project_id":"2"},
    "Project":
        {"id":"2","name":"Web"}
},{
    "Word":
        {"id":"4","project_id":"2"},
    "Project":
        {"id":"2","name":"Web"}
};

更新: 在JavaScript中

2 个答案:

答案 0 :(得分:-1)

您是否有特定的编程语言想要进行排序?

因为在C#中你可以将每个“Tree”加载到一个数组中并循环遍历每个索引,然后应用一个“rank”,然后你可以使用它来重新组织数组。一旦数组索引按顺序排列,您就可以重建原始的JSON树,或者在代码中使用排序的数组。

如果您使用的是像javascript这样的网络语言,那么内置的排序功能可以与自定义功能结合使用,以便进行排名:

Words.sort(function(a, b) {
    return parseFloat(a.id) - parseFloat(b.id);
});

答案 1 :(得分:-1)

您有多个嵌套对象,因此您需要查看存储在Word的对象内部以获取用于比较的id属性。这可能是这样的:

wordsArray.sort(function (a,b) {
    return parseInt(a.Word.id) - parseInt(b.Word.id);    
});