javascript - JavaScript - 从消息数组中获取天数,不包括没有消息的天数
问题描述
我正在开发一个聊天应用程序,我有一组消息,每个消息都有一个时间戳属性。我需要在至少发送 1 条消息的数组中获取所有天数,例如在 WhatsApp 中。这个想法是在不同日期的消息之间显示分隔符,分隔符就在指定日期的第一条消息之前。
例如,如果消息数组是
[
{
message: "Hey",
timestamp: (1st January 2020)
},
{
message: "Hi",
timestamp: (1st January 2020)
},
{
message: "Hello",
timestamp: (3rd January 2020)
},
]
那么预期的输出将是
[(1st January 2020), (3rd January 2020)]
甚至更好
[
{
type: "Seperator",
day: (1st January 2020)
},
{
message: "Hey",
timestamp: (1st January 2020)
},
{
message: "Hi",
timestamp: (1st January 2020)
},
{
type: "Seperator",
day: (3rd January 2020)
},
{
message: "Hello",
timestamp: (3rd January 2020)
}
]
解决方案
您需要做的就是检查当前时间是否已被访问。如果没有,请添加分隔符。
let timestamps = [
{
message: "Hey",
timestamp: '1st January 2020'
},
{
message: "Hi",
timestamp: '1st January 2020'
},
{
message: "Hello",
timestamp: '3rd January 2020'
},
];
const separateTimestamps = ary => {
let splitTimes = new Array();
let timestamp;
for (let i=0; i<ary.length; i++) {
if (timestamp != ary[i].timestamp) {
timestamp = ary[i].timestamp;
splitTimes.push({
type: 'Seperator',
timestamp: timestamp
});
}
splitTimes.push(ary[i]);
}
return splitTimes;
}
console.log(separateTimestamps(timestamps));
推荐阅读
- html - 我想使用 thymeleaf 模板引擎在属性文件中显示文本
- c - 在 Eclipse 中运行简单的 hello world 程序 C 时出错
- oracle - 操作从内部查询传递的外部查询中的结果集
- performance - Elasticsearch 上无法解释的慢查询
- android - Android Camera Intent 在 OnePlus 设备中不起作用
- php - 如何在不解压 PHP/Codeigniter 的情况下读取压缩文件中的电子表格?
- mysql - 如何加快 mySQL 中的请求?
- google-cloud-platform - 经济高效地摄取 DLP 作业的结果
- python-3.x - 我需要 django 中 AbstractBaseUser 的 has_perm() 示例
- nuxt.js - 如何在 NuxtJS 中使用 DOMPurify 包?错误:“default.a.sanitize 不是函数”