我正在使用React JS制作聊天应用,以下是我的一个对象数组:
const messages = [
{message: "ghhhhhhhh", receiver: "faty", sender: "harry", time: "10/1/2019 12:56"},
{message: "ggggggghjjgcgh", receiver: "harry", sender: "marie", time: " 10/1/2019 12:45"},
{message: "good afternoon", receiver: "harry", sender: "marie", time: " 10/1/2019 12:41"},
{message: "hfdsghfdfhjo", receiver: "faty", sender: "harry", time: " 10/1/2019 12:38"},
{message: "hhhhhhhhhhhhh ", receiver: "harry", sender: "faty", time: " 10/1/2019 11:50"}
];
我想展示每个人之间的最后一条消息。
我尝试了下面的代码,但它没有呈现出我想要的结果。
const senders =messages.reduce((a, c) => {
a[c.sender] = a[c.sender] || { data: [] };
a[c.sender].data.push({ sender: c.sender, message: c.message, time: c.time, receiver: c.receiver, hotel_id: c.hotel_id, isseen: c.isseen });
a[c.sender].data.sort((a, b) =>{console.log(new Date(b.time),'aaaaaaaaaaaaaa');return ( new Date(b.time).getTime() - new Date(a.time).getTime())})
return a;
}, {})
var messageInbox = Object.values(senders).map(s => s.data[0])
console.log("Latest messages:", messageInbox);
这是我想要展示的内容:
{message: "ghhhhhhhh", receiver: "faty", sender: "harry", time: "10/1/2019 12:56"},
{message: "ggggggghjjgcgh", receiver: "harry", sender: "marie", time: " 10/1/2019 12:45"}
让我解释一下,我有两个人Faty和Harry,他们之间有很多对话信息。我想要显示他们之间的最后一条消息,同时也想要显示Harry和Marie之间的最后一条消息。
如果你理解我的问题,请帮助我,谢谢。