【发布时间】:2018-07-17 05:39:23
【问题描述】:
是否可以删除带有Object.assign() 的键,而不是在以下示例中将值设置为undefined?
我正在使用.filter() 浏览一些项目。当有匹配时,我想添加/更改 x 属性值并删除 y 和 z 属性(而不是将它们设置为未定义)。
files.forEach(file => {
this.setState({
items: this.state.items.filter(item => item.id === file.id ? Object.assign(item, { x: 'x', y: undefined, z: undefined }) : item)
});
})
【问题讨论】:
-
this.state.items.filter(item => item.id === file.id ? { x: 'x'} : item)怎么样? -
不,用 Object.assign() 删除一个键是不可能的,你可以覆盖它。要删除它,你必须明确地这样做
-
仅供参考,
Object.assign的第一个参数是目标。所以它会变异item这是一种不好的做法 -
你为什么使用
filter()而不是map()你的过滤器中的函数没有返回一个令人困惑的布尔值。 -
只需添加您尝试智能关闭的三行代码。你的代码会更清晰,几个月后你会很开心。
标签: javascript node.js reactjs object