查找满足条件的数组索引

时间:2019-05-02 22:21:37

标签: javascript arrays

客户端正在从服务器上的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
        }
    ]

]

1 个答案:

答案 0 :(得分:0)

  

在满足条件的数组中查找数组的索引

您可能正在寻找array.findIndex()。给它一个数组,然后为每个项目运行一个函数。遇到您要查找的ID时,返回true