繁体   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