【问题标题】:In what form to keep a chat list and their messages in client side以什么形式在客户端保留聊天列表及其消息
【发布时间】: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


【解决方案1】:

这取决于您需要做什么、数据的大小、要求等。

您可以通过保留id 字段并在需要时循环值来轻松组合这些选项。但根据您的任务,您可能还需要添加额外的排序。

【讨论】:

    猜你喜欢
    • 2012-06-04
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-28
    相关资源
    最近更新 更多