【发布时间】:2019-10-06 10:37:49
【问题描述】:
我有 2 个选项来存储接收到的数据
-
1.
[
{
chatId: 'chatId1',
author: 'authorId1',
members: [],
messages: []
},
{
chatId: 'chatId2',
author: 'authorId2',
members: [],
messages: []
},
...
]
-
2.
{
'chatId1': {
author: 'authorId1',
members: [],
messages: []
},
'chatId2': {
author: 'authorId2',
members: [],
messages: []
},
...
}
在第一个选项中,要在chatId2 ID 的聊天中添加消息,我必须循环查找丢失的聊天,但在第二个选项中,我可以获得对象的chatId2 属性。
您推荐哪种形式?
附:对不起我的英语不好。谢谢;)
【问题讨论】:
-
数组会按照你放入的顺序保存所有对象,而包含对象的对象可能会出现乱序,因此除非你在它们上放置索引或时间戳,否则你的消息将不同步例如,但这不会很好。所以我建议使用一个数组并使用:arr[index] 来引用它们。所以chatId1 实际上会被messages[0] 引用。如果你真的想通过像“chatId0”这样的字符串来引用它们,那么你可以使用一个 Map 数据结构,它像数组一样保持它们的顺序,这样你就可以按顺序循环它们,但你也可以通过键引用项目,例如 'chatId0 '。
标签: javascript arrays object chat message