【问题标题】:How to group by object by date?如何按日期按对象分组?
【发布时间】:2018-01-09 09:13:12
【问题描述】:

我从数据库中获取数据,我想明智地发送响应日期。

我希望根据我的日期数据在小组中获得一点帮助。

我有如下对象

var IHAVE =   [{
      "foodId": "59031fdcd78c55b7ffda17fc",
      "qty": 1,
      "dateTime": "2017-07-26T12:03:06.000Z",
      "_id": "591c3bfcca93e86c3450a537"
  }, {
      "foodId": "59031fdcd78c55b7ffda17fc",
      "qty": 1,
      "dateTime": "2017-05-18T04:21:13.000Z",
      "_id": "591d213b6878badb0621b840"
  }, {
      "foodId": "59031fdcd78c55b7ffda17fc",
      "qty": 1,
      "dateTime": "2017-07-26T12:03:010.000Z",
      "_id": "591c3bfcca93e86c3450a537"
  },{
      "foodId": "59031fdcd78c55b7ffda17fc",
      "qty": 1,
      "dateTime": "2017-05-18T04:22:01.000Z",
      "_id": "591d216a6878badb0621b842"
  }];

我想要如下

  var IWANT = [{ 
     date: "2017-07-26",
     data: [{
       "foodId": "59031fdcd78c55b7ffda17fc",
       "qty": 1,
       "dateTime": "2017-07-26T12:03:06.000Z",
       "_id": "591c3bfcca93e86c3450a537"
     },{
       "foodId": "59031fdcd78c55b7ffda17fc",
       "qty": 1,
       "dateTime": "2017-07-26T12:03:010.000Z",
       "_id": "591c3bfcca93e86c3450a537"
     }]
  }, {
     date: "2017-05-18",
     data: [{
       "foodId": "59031fdcd78c55b7ffda17fc",
       "qty": 1,
       "dateTime": "2017-05-18T04:21:13.000Z",
       "_id": "591d213b6878badb0621b840"
     },{
       "foodId": "59031fdcd78c55b7ffda17fc",
       "qty": 1,
       "dateTime": "2017-05-18T04:22:01.000Z",
       "_id": "591d216a6878badb0621b842"
     }]
  }];

我正在使用 nodejs、moment、lo-dash。 请帮我解决这个问题。

【问题讨论】:

    标签: javascript node.js momentjs lodash


    【解决方案1】:

    解决这些问题的通常方法是groupmap

    // Helper function to extract the date from a dateTime
    var date = function(d){
        return moment(d.dateTime).format('YYYY-MM-DD');
    }
    
    // map a group to the required form
    var groupToSummary = function(group, date) {
        return {
            date: date,
            data: group
        }
    }
    
    var IWANT = _(IHAVE)
        .groupBy(date)
        .map(groupToSummary)
        .value();
    

    【讨论】:

    • 感谢您的回答,但您能否在 ES5 中帮助我。我没有使用 ES6。谢谢
    • 将箭头函数转换为完整的函数定义。
    猜你喜欢
    • 2016-09-06
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-20
    • 1970-01-01
    • 2017-10-29
    • 2013-11-25
    相关资源
    最近更新 更多