尝试对对象数组进行排序:

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; }

07-24 18:18
查看更多