gpt4 book ai didi

javascript - 使用 Underscore.js 对对象进行分组和排序

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

我正在尝试对对象应用分组和排序。

var emplData = [{
"company": "companyA",
"title": "positionA",
"office": "Boston",
"first-name": "Mike",
"last-name": "Bloom",
"profile-url": "url"
}, {
"company": "companyA",
"title": "positionD",
"office": "Amsterdam",
"first-name": "Adam",
"last-name": "Smart",
"profile-url": "url"
}, {
"company": "companyB",
"title": "positionB",
"office": "Toronto",
"first-name": "Tina",
"last-name": "Carmichael",
"profile-url": "url"
}, {
"company": "companyB",
"title": "positionA",
"office": "Chicago",
"first-name": "Seth",
"last-name": "Big",
"profile-url": "url"
}, {
"company": "companyC",
"title": "positionC",
"office": "St. Louis",
"first-name": "Carla",
"last-name": "Elsas",
"profile-url": "url"
}]

我喜欢按company 对数据进行分组,然后按办公室排序(升序)。我正在使用 underscore.js分组,它返回类似于下面的对象。

var grpData = _.groupBy(emplData, 'company');

{
CompanyA:[{object1}, {object2} etc.],
CompanyB: [{object1}, {object2} etc.],
CompanyC: [{object1}, {object2} etc.]
}

现在分组数组中的每个对象都具有包括 office 在内的属性,我无法获得我需要的结果来对数据进行排序,所以我们有一个升序。

我试过下面的方法,但似乎不起作用。

var srtData = _.sortBy(grpData , function (i) {
$(i).each(function (i2, val) {
return val.office;
});
});

有人知道这个的解决方案吗?

最佳答案

为什么不先排序再分组呢?然后结果将是一个按公司名称分组的集合,每个对象都包含已排序的对象数组(按办公室名称升序)

var grpData = _.groupBy(_.sortBy(emplData, "office"), 'company');

关于javascript - 使用 Underscore.js 对对象进行分组和排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30716166/

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