Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 重命名分组数组中的键,以表示它们分组的日期_Javascript_Node.js - Fatal编程技术网

Javascript 重命名分组数组中的键,以表示它们分组的日期

Javascript 重命名分组数组中的键,以表示它们分组的日期,javascript,node.js,Javascript,Node.js,我有一个数组,我按1分钟分组,相对于日期的其余部分(秒除外)。现在的问题是数组中每个组(3个组)的键只命名为0、1、2等,我希望它们的命名日期与它们表示的分组日期相同 像这样: [ "Fri Jan 31 2020 14:58": [ { "_id": "5e34326b1da7e21c04ec76e8", "message": "15", "room": "5e32c3f858f00d4ef5f9ab81", "createdAt":

我有一个数组,我按1分钟分组,相对于日期的其余部分(秒除外)。现在的问题是数组中每个组(3个组)的键只命名为0、1、2等,我希望它们的命名日期与它们表示的分组日期相同

像这样:

[
  "Fri Jan 31 2020 14:58": [
    {
      "_id": "5e34326b1da7e21c04ec76e8",
      "message": "15",
      "room": "5e32c3f858f00d4ef5f9ab81",
      "createdAt": 1580479083,
      "user": "5e10e7a6a69a4a36e4169bdc",
      "__v": 0
    },
    {
      "_id": "5e34327e1da7e21c04ec76e9",
      "message": "hello",
      "room": "5e32c3f858f00d4ef5f9ab81",
      "createdAt": 1580479102,
      "user": "5e10e7a6a69a4a36e4169bdc",
      "__v": 0
    },
    {
      "_id": "5e34328c1da7e21c04ec76ea",
      "message": "156",
      "room": "5e32c3f858f00d4ef5f9ab81",
      "createdAt": 1580479116,
      "user": "5e10e7a6a69a4a36e4169bdc",
      "__v": 0
    }
  ]
]
请参阅代码片段,如何实现这一点

const messages=[{u id:“5e34326b1da7e21c04ec76e8”,“message:“15”,“room:“5e32c3f858f00d4ef5f9ab81”,“createdAt:”1580479083,“user:”5e10e7a6a69a36e4169bdc“,“{u id:”5e34327e17e21c04ec76e9”,“message:“hello”,“room:”5e32c3f80f00d4ef5f9ab81,“createda2”,“created15e40a6b9a6b:”user:“,”e40a6e40a6a6e:{:”e40a6a6a6u:“id:”e40a6e4a6e4a6a6a6e:”u9a6a6e:“,{:”“56”,“房间”,“房间”,“房间”,“房间”,“房间”,“房间”,“房间”,“5E33333333F858f58f080f55f55f55f5f5f5f5f5f55f5f5f5f5f5f5f5f5f5f5f5f55f555f5f55f55f55f5f5f5f5f5f5f81”,“创建数据:15880479116,”用户:“用户”,“用户”,“用户”,“用户”,“用户”,“用户”,“用户”,“用户”,“5E10E10E7777E7E7E7E7E7E7E7E7E7E7E7E7E7A67A6A67A6A67A6A6A6A67A6A67A6A6A67A6A6A67A6A67A6A6A6A6A67A6A67A3A3A3A3A3A3A3A3A3A3A3A3A3A36A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3“:“最新的”会议室“:”5e32c3f858f00d4ef5f9ab81“,”createdAt“:”1580486202,“用户“:”5E10E7A69A36E4169BDC“,”会议室“:”0},{”id“:”5e344e3e744b240a5cf7c9b6“,”消息“:”最新的1“,”会议室“:”5e32c3f858f00d4ef5f9ab81“,”createdAt“:”1580486206,“用户“:”5E10E7A69A36E4169BDC“,”会议室“,”会议室“,”最新的“最新的1“,”会议室“;”;
const sortByDate=u2;.chain(消息)
.groupBy(m=>{
const d=新日期(m.createdAt*1000);
控制台日志(d);
返回数学楼层(+(d)/(1000*60));
})
.sortBy((v,k)=>{return k;})
.value();
console.log(sortByDate);

您可以通过以下方式实现:

messages.map((message) => {
    d = new Date(message.createdAt);
    d.setMinutes(0);
    d.setSeconds(0);
    arr.push({[d]:message});
});

希望能有帮助:)

我只用
\uu.groupBy
和momentjs就解决了这个问题

const sortByMinute = _.groupBy(messages, function (date) {
  return moment(date.createdAt*1000).startOf("minute").format();
});

它按分钟对它们进行分组,并相应地命名返回的对象!

您能告诉我们您的结果应该是什么样子吗?@EmielZuurbier是的,请再次查看问题。