-1
我有代碼從下面的數組返回Name,Stardate和Enddate。我也想獲得Id和Project Id。我被困在如何使用Underscore獲得它們。如何使用下劃線從數組中獲取值
arr = [{
"Id": "03bf3cf6-d95b-448f-b3b7-c3cebfce0034",
"Name": "Define",
"ProjectId": "a357ff1b-cbf8-4556-9edb-445b2efb3bfa",
"StartDate": "2015-04-09",
"EndDate": "2015-04-22",
"Stage": ["03bf3cf6-d95b-448f-b3b7-c3cebfce0034=define=Define"]
}, {
"Id": "a9aed2f0-7e3b-4149-b6e3-0e3cfd33bf68",
"Name": "Plan",
"ProjectId": "a357ff1b-cbf8-4556-9edb-445b2efb3bfa",
"StartDate": "2015-04-22",
"EndDate": "2015-04-29",
"Stage": ["a9aed2f0-7e3b-4149-b6e3-0e3cfd33bf68=plan=Plan"]
}, {
"Id": "a9aed2f0-7e3b-4149-b6e3-0e3cfd33bf68",
"Name": "Plan",
"ProjectId": "a357ff1b-cbf8-4556-9edb-445b2efb3bfa",
"StartDate": "2015-04-30",
"EndDate": "2015-05-14",
"Stage": ["a9aed2f0-7e3b-4149-b6e3-0e3cfd33bf68=plan=Plan"]
}];
result = _.chain(arr)
.groupBy(function (e) {
return e.Name
})
.pairs()
.map(function (e) {
return {
Name: e[0],
StartDate: _.chain(e[1]).sortBy(function (e) {
return new Date(e.StartDate).getTime();
}).first().value().StartDate,
EndDate: _.chain(e[1]).sortBy(function (e) {
return -1 * new Date(e.EndDate).getTime();
}).first().value().EndDate
}
})
.value();
console.log(JSON.stringify(result));