如何合并数组中的对象

kokeuurv  于 2022-09-21  发布在  React
关注(0)|答案(1)|浏览(187)

我在下面的数组中遇到了一些问题,我想组合具有相同时隙的对象。

我试着遍历它们,并将所有对象与各自的时隙进行比较。但(我认为)因为它们都被视为不同的示例,所以它不起作用。

我不是要求一个完整的解决方案,而是一些关于如何将它们相互比较或如何处理的提示。

我的数组

[
    {
        "valid_days": ["0"],
        "timeslots": [
            {
                "from_time": "09:00",
                "to_time": "12:00"
            }
        ]
    },
    {
        "valid_days": ["1"],
        "timeslots": [
            {
                "from_time": "09:00",
                "to_time": "12:00"
            }
        ]
    },
    {
        "valid_days": ["2"],
        "timeslots": [
            {
                "from_time": "09:00",
                "to_time": "12:00"
            },
            {
                "from_time": "13:00",
                "to_time": "15:00"
            }
        ]
    },
    {
        "valid_days": ["3"],
        "timeslots": [
            {
                "from_time": "09:00",
                "to_time": "12:00"
            },
            {
                "from_time": "13:00",
                "to_time": "15:00"
            }
        ]
    }
]

预期效果

[
    {
        "valid_days": ["0", "1"],
        "timeslots": [
            {
                "from_time": "09:00",
                "to_time": "12:00"
            }
        ]
    },
    {
        "valid_days": ["2", "3"],
        "timeslots": [
            {
                "from_time": "09:00",
                "to_time": "12:00"
            },
            {
                "from_time": "13:00",
                "to_time": "15:00"
            }
        ]
    }
]
isr3a4wc

isr3a4wc1#

因为你只想得到一些提示:

1.对于循环,您应该熟悉JS中的经典循环或非常好用的内置数组函数:

1.在JS中进行比较时,请始终使用“=”或“!==”,而不是使用“==”或“!=”。这两种类型都不支持深入比较对象。这意味着{ foo: 'bar' } === { foo: 'bar' }始终返回false。因此,您必须(可能使用比较函数)比较时隙对象。

我想,剩下的应该是直截了当的:)

相关问题