如何在 lodash 中分组

how to groupBy in lodash

我正在为我的 Node.JS 项目使用 lodash 库,我需要根据用户提供的标签对一些曲目进行排序。 到目前为止,我能够按 object_id 曲目进行分组,但无法按相同 object_id

的记录数对它们进行排序

例如我有一个对象数组如下:

{
"error": false,
"status": 200,
"data": [
    {
        "id": 1,
        "object_id": 2,
        "term_taxonomy_id": 1,
        "user_id": 1,
    },
    {
        "id": 3,
        "object_id": 3,
        "term_taxonomy_id": 1,
        "user_id": 1,
    },
    {
        "id": 10,
        "object_id": 2,
        "term_taxonomy_id": 1,
        "user_id": 3,
    },
    {
        "id": 12,
        "object_id": 2,
        "term_taxonomy_id": 1,
        "user_id": 5,
    },
    {
        "id": 14,
        "object_id": 1,
        "term_taxonomy_id": 1,
        "user_id": 5,
    },
    {
        "id": 15,
        "object_id": 1,
        "term_taxonomy_id": 1,
        "user_id": 3,
    }
]

}

使用 lodash 我想要这样的结果: [2,1,3] 因为 2 的 object_id 重复了 3 次(从其他人的最大值)并且应该是顶部,依此类推......

有什么想法吗? 谢谢

_.chain(data)
.groupBy(function(d) { return d.object_id; })
.map(function(g) { return [g[0].object_id, g.length]; })
.sortBy(function(d) { return d[1] * -1; }) // d[1] is the length of each group
.map(function(d) { return d[0]; }) // d[0] is the gorup's key
.value();