客户端正在从服务器上的socket.io接收消息。此消息的数据具有此对象:
{
from,
text,
dateTimeSent,
chatId
}
这些是有关系统上另一个用户发送的聊天消息的数据。
在客户端,用户正在存储有关他们参与的所有聊天的信息。此数据来自MongoDB,该数据库具有一个名为chats
的集合,其中每个聊天都有一个_id。
因此,基本上,客户端将存储有关他们有权访问的每个聊天的所有信息的信息,包括聊天的_id。
我将如何使用套接字上收到的chatId
,然后在存储此消息应进入的聊天的_id的数组中搜索该ID?
是否存在JavaScript函数,您可以在其中搜索数组中特定字段的值?
以下是用户存储在其客户端上的数组。我将如何在此数组中搜索chatId的值?
[
[
"0",
{
"_id":"5ccb37c82eab402834818e8f",
"participants":[
{
"_id":"5ccb37c82eab402834818e91",
"userEmail":"test2@gmail.com"
},
{
"_id":"5ccb37c82eab402834818e90",
"userEmail":"test@gmail.com"
}
],
"chatType":"chat",
"messages":[
{
"dateTimeSent":"2019-05-02T19:50:19.000Z",
"_id":"5ccb49fba2129f160cb22ac8",
"text":"",
"from":"test2@gmail.com"
},
{
"dateTimeSent":"2019-05-02T19:50:58.896Z",
"_id":"5ccb4a27a2129f160cb22ade",
"text":"dfdf",
"from":"test2@gmail.com"
},
{
"dateTimeSent":"2019-05-02T19:51:03.093Z",
"_id":"5ccb4a27a2129f160cb22add",
"text":"",
"from":"test2@gmail.com"
},
{
"dateTimeSent":"2019-05-02T19:54:13.070Z",
"_id":"5ccb4aeaa2129f160cb22b06",
"text":"",
"from":"test2@gmail.com"
},
{
"dateTimeSent":"2019-05-02T21:45:29.498Z",
"_id":"5ccb64fbf769fd273c500889",
"text":"hi",
"from":"test@gmail.com"
},
{
"dateTimeSent":"2019-05-02T21:45:31.020Z",
"_id":"5ccb64fbf769fd273c500888",
"text":"hi",
"from":"test@gmail.com"
}
],
"__v":0
}
],
[
"1",
{
"_id":"5ccb5197a2129f160cb22b13",
"participants":[
{
"_id":"5ccb5197a2129f160cb22b15",
"userEmail":"test2@gmail.com"
},
{
"_id":"5ccb5197a2129f160cb22b14",
"userEmail":"adam2.cole@northumbria.ac.uk"
}
],
"chatType":"chat",
"messages":[
{
"dateTimeSent":"2019-05-02T20:22:50.633Z",
"_id":"5ccb519ca2129f160cb22b1b",
"text":"fgfhgfbvb",
"from":"test2@gmail.com"
},
{
"dateTimeSent":"2019-05-02T20:22:51.924Z",
"_id":"5ccb519ca2129f160cb22b1a",
"text":"fgfhgfbvb",
"from":"test2@gmail.com"
},
{
"dateTimeSent":"2019-05-02T20:22:52.751Z",
"_id":"5ccb519ca2129f160cb22b19",
"text":"fgfhgfbvb",
"from":"test2@gmail.com"
}
],
"__v":0
}
]
]
答案 0 :(得分:0)
在满足条件的数组中查找数组的索引
您可能正在寻找array.findIndex()
。给它一个数组,然后为每个项目运行一个函数。遇到您要查找的ID时,返回true
。