簡體   English   中英

如何比較多個對象中的值

[英]How to compare values in multiple objects

我有一個對象數組,如下所示:

var values = [
  [
  {
            "place": {
                "display": "Orlando",
                "value": "ORL"
            },
            "date": {
                "display": "18/07/2021",
                "value": "2021-07-17T23:00:01.000Z"
            }
        },
        {
            "place": {
                "display": "Saint Lucia",
                "value": "SLU"
            },
            "date": {
                "display": "20/07/2021",
                "value": "2021-07-19T23:00:01.000Z"
            }
        }
    ],
    [
        {
            "place": {
                "display": "Saint Lucia"
            },
            "date": {
                "display": "",
                "value": ""
            }
        },
        {
            "place": {
                "display": "Stockholm",
                "value": "STO"
            },
            "date": {
                "display": "",
                "value": ""
            }
        }
    ]
]

它在前端的顯示方式:

第 1 行:

Place 1: Orlando -- Place 2: Saint Lucia

第 2 行:

Place 3: Saint Lucia -- Place 4: Stockholm 

我想檢查每一行,更具體地說,檢查每一行的第一個位置(即 Place 1 和 Place 3),如果位置匹配 [主數組中的對象數組]。

因此,如果地點 1 等於地點 3 - 返回 true

這是一個說明問題的例子。 實際上,用戶可以根據需要添加任意多的行,因此我需要檢查每個對象(數組 [0] 包含位置 1 和位置 2 的對象;數組 [1] 包含位置 3 和位置 4 的對象,依此類推對於數組中的所有現有對象)

注意:每行(有 2 個位置)包含這 2 個對象的數組

如何在js中實現這一點?

使用flatMapmap您可以選擇位置作為字符串數組,然后根據需要比較它們:

 var values=[[{place:{display:"Orlando",value:"ORL"},date:{display:"18/07/2021",value:"2021-07-17T23:00:01.000Z"}},{place:{display:"Saint Lucia",value:"SLU"},date:{display:"20/07/2021",value:"2021-07-19T23:00:01.000Z"}}],[{place:{display:"Saint Lucia"},date:{display:"",value:""}},{place:{display:"Stockholm",value:"STO"},date:{display:"",value:""}}]]; var places = values.flatMap(t=>t.map(x=>x.place.display)); console.log(places); //compare any way you want var places = values.flatMap(t => t.map(x => x.place.display)); for (var i = 0; i < places.length - 2; i++) { if (places[i] != places[i + 2]) console.log("place " + (i + 1) + " is not equal to place " + (i + 3)) }

暫無
暫無

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

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