从另一个数组更新对象数组的JavaScript方法是什么?

时间:2016-10-25 22:59:31

标签: javascript arrays

我有一个名为probe的对象。它有一个叫做传感器的属性,它是一个数组。

var probe = {
    sensors = [
        { id: 1, checked: false },
        { id: 2, checked: true },
        { id: 3, checked: false },
        ... //more sensors
    ],
    ... //other properties
}

我有单独的数组,其中包含更新的传感器列表,如下所示。

var updatedSensors = [
    { id: 1, checked: true },
    { id: 3, checked: true }
];

我想从updatedSensors中的值更新探测对象中的传感器数组。我该怎么办?

这可以通过使用几个for循环轻松实现。但for循环并不是在JavaScript中迭代的好方法,所以我想知道如何以首选方式执行此操作。

编辑:

updatedSensors中的对象是probe.sensors中对象的子集。换句话说,updatedSensors没有probe.sensors中的所有对象(id),但probe.sensors包含updatedSensors中的所有对象(ID)。

感谢。

1 个答案:

答案 0 :(得分:1)

尝试这段代码:

probe.sensors.map(function (sensor) {
     // Loop through updated sensors & match sensor.id so we can reassign val
     updatedSensors.map(function (f) {
           if (f.id == sensor.id) {
               sensor.checked = f.checked
           }
     })
     return sensor;
})