我觉得有一种方法可以用 ES6 简化父对象中某些嵌套对象的更新,但我无法完全表达它或追踪语法。
我目前有这个:
entryData = {
exchangeData: {...}
scenes: {...},
takeover: {...},
}
我定期轮询 API 以仅更新scenes
和takeover
子对象:
APP.api.getEntryContent().then((data) => {
//data = { scenes: {...}, takeover: {...}
entryData.scenes = data.scenes;
entryData.takeover = data.takeover;
});
但我觉得有一个衬里只是说entryData = {...data}
- 但当我这样做时,它会擦除exchangeData
对象。如何仅更新从 API 返回的数据?
您可以使用Object.assign()
.
var entry = {
exchangeData: {"ab":1},
scenes: {"a":1,"b":2},
takeover: {"a":1,"b":1}
};
var data = {
scenes: {"a":2,"b":5},
takeover: {"a":2,"b":6}
};
entry = Object.assign(entry,data);
console.log(entry);