我有一个名为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)。
感谢。
答案 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;
})