簡體   English   中英

查找數組中的值滿足條件的數組索引

[英]Find index of array where value in array meets condition

客戶端正在從服務器上的 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
        }
    ]

]

查找數組中的值滿足條件的數組索引

您可能正在尋找array.findIndex() 給它一個數組和一個為每個項目運行的函數。 遇到您要查找的 ID 時返回true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM