gpt4 book ai didi

javascript - Lodash orderBy 对象数组的对象

转载 作者:行者123 更新时间:2023-11-29 10:30:41 24 4
gpt4 key购买 nike

我有一个数组:

const names = [{name: 'a', equal: 3},
{name: 'b', equal: 2},
{name: 'c', equal: 2},
{name: 'd', equal: 3},
{name: 'a1', equal: 1}]

我正在运行 _.groupBy(names, 'equal') 结果我得到:

{1: [{equal: 1, name: 'a1'}],
2: [{equal: 2, name: 'b'}, {equal: 2, name: 'c'}],
3: [{equal: 3, name: 'a'}, {equal: 3, name: 'd'}]}

但是这里按名称排序消失了。如何在此对象中按名称排序?

更新

我想得到:

{3: [{equal: 3, name: 'a'}, {equal: 3, name: 'd'}],
1: [{equal: 1, name: 'a1'}],
2: [{equal: 2, name: 'b'}, {equal: 2, name: 'c'}]}

最佳答案

通过使用数组作为结果集,您可以在分组后对它进行排序。

var names = [{ name: 'a', equal: 3 }, { name: 'b', equal: 2 }, { name: 'c', equal: 2 }, { name: 'd', equal: 3 }, { name: 'a1', equal: 1 }],
equals = {},
result = [];

names.forEach(function (o) {
if (!equals[o.equal]) {
equals[o.equal] = [];
result.push(equals[o.equal]);
}
equals[o.equal].push(o);
});

result.sort(function (a, b) {
return a[0].name.localeCompare(b[0].name);
});

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - Lodash orderBy 对象数组的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46836129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com