gpt4 book ai didi

javascript - ES6 中的解构和/或质量分配

转载 作者:行者123 更新时间:2023-11-29 23:21:07 25 4
gpt4 key购买 nike

我有 2 个数据源。其中一个来源是数据可接受的"template"。但是,第二个来源可能有大量我不关心的数据(JSON 中的 100 多个属性)。以下是架构:

// Only store the data we care about.  Only a small subset of
// data that I need for this particular dataset.
state = {
isDirty: false,
data: {
name: '',
address: '',
city: '',
state: ''
}
}

第二个源将具有上述数据模式中的 4 个属性(还有许多我不关心的属性)。目前,我正在这样分配它们:

let updatedData = {};

for(const key in this.state.data) {
updatedData[key] = someDataSource[key];
}

this.state.data = updatedData;

使用 ES6,也许还有析构,有没有更好的方法来像这样批量分配变量?

再次感谢!

编辑

添加以澄清循环后的赋值。

最佳答案

Lodash pick 可用于选择特定的键,或者辅助函数可用于相同目的:

const pick = (obj, keys) => Object.keys(obj)
.filter((key) => keys.indexOf(key) >= 0)
.reduce(
(newObj, key) => Object.assign(newObj, { [key]: obj[key] }),
{}
);

这已在许多相关问题中提出。这个问题的具体内容是:

this.state.data = pick(someDataSource, Object.keys(this.state.data));

关于javascript - ES6 中的解构和/或质量分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50615118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com