【发布时间】:2019-11-15 23:55:34
【问题描述】:
美好的一天! 我有一个聊天,сhat 有一系列消息。
[{"id":4,
"user_id":1,
"messageable_id":3,
"messageable_type":"conversation",
"text":"Text 1",
"action":null,
"target_id":null,
"created_at":"2019-06-17 15:47:55",
"updated_at":"2019-06-17 15:47:55",
"replies":[],
"files":[]},
{"id":5,
"user_id":1,
"messageable_id":3,
"messageable_type":"conversation",
"text":"Text 2",
"action":null,
"target_id":null,
"created_at":"2019-06-17 15:48:00",
"updated_at":"2019-06-17 15:48:00",
"replies":[],
"files":[]}]
如果时差小于 60 秒,我想将消息文本合并到一条消息中
[{"id":4,
"user_id":1,
"messageable_id":3,
"messageable_type":"conversation",
"grouped_text":["Text 1","Text 2"], //GROUP
"action":null,
"target_id":null,
"created_at":"2019-06-17 15:47:55",
"updated_at":"2019-06-17 15:47:55",
"replies":[],
"files":[]}]
我试试这个代码
let messages = this.$store.getters['conversation/messages'](this.conversation);
let grouped = _.groupBy(messages, message => {
return this.$moment(message.created_at).startOf('minute');
});
我怎样才能做得更好?我可以使用 lodash
提前谢谢你
【问题讨论】:
-
请添加您尝试过的代码
-
我只是试试 lodash 函数 GroupBy 和 moment
标签: javascript arrays vue.js lodash javascript-objects