javascript - 按地图内数组项内的对象对对象数组进行排序
问题描述
我想按日期对这些 ChatListItem 进行排序chat.messages.date
。
{
userChats.map(chat => (
<ChatLink key={chat._id} to={`/chats/${chat._id}`}>
<ChatListItem
partnerName={pickPartnerName(
userName,
chat.userName1,
chat.userName2
)}
userImgSrc={DefaultUserAvatar}
lastMessage={chat.messages[chat.messages.length - 1].body}
lastMessageDate={chat.messages[
chat.messages.length - 1
].date.slice(11, 16)}
/>
</ChatLink>
));
}
db 对象如下所示:
const messageSchema = new mongoose.Schema({
type: {
type: String
},
body: {
type: String
},
author: {
type: String
},
date: {
type: Date,
default: Date.now
}
});
const chatSchema = new mongoose.Schema({
userName1: String,
userName2: String,
messages: [messageSchema]
});
所以我想按这些消息的最后日期排序。日期本身如下所示:2020-01-13 22:22:17.345Z
我将如何做到这一点?
提前致谢!
对不起我可怕的问题标题
这是我实际想要实现的目标的视觉效果。 https://i.stack.imgur.com/zQkxl.png
解决方案
要对你的 chat.messages 进行排序,你可以这样处理
chat.messages.sort((a,b)=>a.date.getTime()-b.date.getTime());
a.date.getTime()-b.date.getTime()
现在由您决定通过更改为来获得您想要的订单bdate.getTime()-a.date.getTime()
推荐阅读
- php - 为什么我的查询结果将预期结果从“300”更改为上标“L”?
- java - 从 txt 读取二维数组列表
- php - Dockerfile 和 yml 配置
- coldfusion - ColdFusion 10 与 ColdFusion 2018 - 输出速度差异
- javascript - 尝试使用 javascipt 创建共享点文档库时出现 JSON 无效错误
- regex - 正则表达式中的命令位置问题
- excel - 如果范围没有,则隐藏无模式用户窗体
- html - 禁用 YouTube 视频的播放/暂停按钮
- reactjs - babel-plugin-root-import 路径没有被 ESLinter 解析
- apache-spark - 如何从数据框中选择多列并转储到pyspark中列出