尝试对对象数组进行排序:
mainObject = {
august: [],
december: []
}
每个数组包含具有不同日期和票证信息的多个对象。
mainObject = {
august: [
{ date: "2016-08-22", ticket: "parking" },
{ date: "2016-08-14", ticket: "speeding" },
{ date: "2016-08-29", ticket: "parking" }
],
december: [
{ date: "2016-12-06", ticket: "parking" },
{ date: "2016-12-30", ticket: "parking" },
]
}
我将每张票打印到模板中,但希望它们按日期升序排列。在这种情况下,我想对信息进行排序,然后再将数据传递到模板中,如何使用Lodash或其他方式?
我尝试了以下变化:
_.sortBy(mainObject, [function(d) { return d.date; }]); // date => undefined
我还尝试过先深入了解该对象:
_.forEach(mainObject, function(month) {
_.sortBy(mainObject, [function(d) { return d.date; }]);
}
上面的方法也不起作用。
最佳答案
您可以按date
排序为纯Javascript中的字符串。
var mainObject = { august: [ { date: "2016-08-22", ticket: "parking" }, { date: "2016-08-14", ticket: "speeding" }, { date: "2016-08-29", ticket: "parking" }], december: [{ date: "2016-12-06", ticket: "parking" }, { date: "2016-12-30", ticket: "parking" }]};
Object.keys(mainObject).forEach(function (k) {
mainObject[k].sort(function (a, b) {
return a.date.localeCompare(b.date);
});
});
console.log(mainObject);
.as-console-wrapper { max-height: 100% !important; top: 0; }