Javascript 在客户端以何种形式保存聊天列表及其消息
我有两个选项来存储接收到的数据 1. 2. 在第一个选项中,要使用chatId2 ID在chat中添加消息,我必须循环并找到丢失的chat,但在第二个选项中,我可以获得对象的chatId2属性。 你推荐什么形式Javascript 在客户端以何种形式保存聊天列表及其消息,javascript,arrays,object,chat,message,Javascript,Arrays,Object,Chat,Message,我有两个选项来存储接收到的数据 1. 2. 在第一个选项中,要使用chatId2 ID在chat中添加消息,我必须循环并找到丢失的chat,但在第二个选项中,我可以获得对象的chatId2属性。 你推荐什么形式 对我的英语很抱歉。谢谢, 这取决于您需要做什么、数据的大小、需求等 通过保留id字段并在需要时循环使用值,可以轻松地组合这些选项。但是,根据您的任务,您可能还需要添加额外的排序。数组将按照您放置对象的顺序保留所有对象,而包含对象的对象可能会变得无序,因此您的消息将不同步,除非您在其上放置
对我的英语很抱歉。谢谢, 这取决于您需要做什么、数据的大小、需求等
通过保留id字段并在需要时循环使用值,可以轻松地组合这些选项。但是,根据您的任务,您可能还需要添加额外的排序。数组将按照您放置对象的顺序保留所有对象,而包含对象的对象可能会变得无序,因此您的消息将不同步,除非您在其上放置索引或时间戳,例如,但这并不好。因此,我建议使用数组并使用:arr[index]引用它们。所以chatId1实际上会被消息[0]引用。如果您真的想通过“chatId0”这样的字符串引用它们,那么您可以使用一个映射数据结构,它可以像数组一样保持它们的顺序,这样您就可以按顺序循环它们,但是您也可以按键引用项,例如“chatId0”。
[
{
chatId: 'chatId1',
author: 'authorId1',
members: [],
messages: []
},
{
chatId: 'chatId2',
author: 'authorId2',
members: [],
messages: []
},
...
]
{
'chatId1': {
author: 'authorId1',
members: [],
messages: []
},
'chatId2': {
author: 'authorId2',
members: [],
messages: []
},
...
}