如何使用数组正确/键名称进行识别,然后通过该名称过滤另一个对象?

问题描述 投票:0回答:1

我有两组数据。如何循环并获取数组属性/键名称以用它过滤另一个对象并将它们合并到新数组中。

我尝试使用 Map/filter/find 但无法做到。在下面的数据中,我想在第二组中搜索001(来自第一组),然后获取数据。需要对集合 1 中的所有数据执行此操作。

数据集1:

{
    "001": {
        "hasCar": false,
        "hasBike": false
    },
    "002": {
        "hasCar": true,
        "hasBike": false
    },
    "003": {
        "hasCar": false,
        "hasBike": false
    },
    "004": {
        "hasCar": false,
        "hasBike": true
    }
}

数据集2:

[
    {
        "UserNumber": "001",
        "vehicleDetails": {
            "country": "IN",
            "color": "Black",
            "company": "Ford",
            "postalCode": "XXXXXXX"
        }
    },
    {
        "UserNumber": "002",
        "vehicleDetails": {
            "country": "IN",
            "color": "Black",
            "company": "Ford",
            "postalCode": "XXXXXXX"
        }
    },
    {
        "UserNumber": "003",
        "vehicleDetails": {
            "country": "IN",
            "color": "Black",
            "company": "Ford",
            "postalCode": "XXXXXXX"
        }
    },
    {
        "UserNumber": "004",
        "vehicleDetails": {
            "country": "IN",
            "color": "Black",
            "company": "Ford",
            "postalCode": "XXXXXXX"
        }
    },
]

所需输出:

{
    {
        "UserNumber": "001",
        "hasCar": false,
        "hasBike": false,
        "vehicleDetails": {
            "country": "IN",
            "color": "Black",
            "company": "Ford",
            "postalCode": "XXXXXXX"
        }
    },
    {
        "UserNumber": "002",
        "hasCar": false,
        "hasBike": true,
        "vehicleDetails": {
            "country": "IN",
            "color": "Black",
            "company": "Ford",
            "postalCode": "XXXXXXX"
        }
    },
}
javascript arrays javascript-objects
1个回答
0
投票

这应该有效

Object
  .keys(dataSet1)
  .map(k => Object.assign(dataSet1[k], dataSet2.find(d2 => d2.UserNumber === k)))
© www.soinside.com 2019 - 2024. All rights reserved.