首页 > 解决方案 > 排序复杂的json

问题描述

朋友们,我在 javascript 中有以下对象:

{
    id:     {0: 3,      1: 2,       2: 1}
    amount: {0: 1000,   1: 5000,    2: 300},
    date:   {0: "aaa",  1: "bbb",   2: "ccc"}
}

如何按“金额”键降序排序?"id" 和 "date" 对象必须根据排序的数量重新排列

预期结果是:

{
    id:     {0: 2,      1: 3,       2: 1}
    amount: {0: 5000,   1: 1000,    2: 300},
    date:   {0: "bbb",  1: "aaa",   2: "ccc"}
}

标签: javascriptarraysjsonsorting

解决方案


我首先建议更改您的数据布局。它不是一种排序友好的格式。我会推荐以下内容:

[
    {id: 2, amount: 5000, date: "bbb"},
    {id: 3, amount: 1000, date: "aaa"},
    {id: 1, amount: 300, date: "ccc"},
]

完成后,您可以使用 sortBy 方法对子键上的数组进行排序,例如:https ://caolan.github.io/async/v3/sortBy.js.html

前任:

sortBy(obj2, (row) => row.amount, (result) => {
    console.log(result);
})

推荐阅读