我试图对对象进行分组和排序。
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;
});
});
任何人都知道这方面的解决方案吗?
答案 0 :(得分:6)
为什么不排序然后分组?然后,结果将是按公司名称分组的集合,每个集合都包含已排序的对象数组(按办公室名称)
var grpData = _.groupBy(_.sortBy(emplData, "office"), 'company');