我有一个关于不同问题的用户提交列表,每当更新时,我都会更新几个属性。我想知道是否有更好的方法,也许通过破坏或传播来使这个更干净/更短?这就是我目前正在做的事情,我减少了示例中的属性数量,但在实际项目中,我将大约 5-6 个属性一一更新,我觉得设置一个有点重复一个。
updateSubmission ( id, type, value ) {
const obj = state.submission.filter( el => el.id === id )[ 0 ]
obj.type = type
obj.value = value
}
使用
.find
代替 .filter
来查找单个匹配对象,然后您可以使用简写 Object.assign
两个属性:
updateSubmission ( id, type, value ) {
Object.assign(
state.submission.find( el => el.id === id ),
{ type, value }
);
}
如果您可以更改
updateSubmission
的签名,那么您还可以使代码更加通用。
updateSubmission ({ id, ...rest }) {
let obj = state.submission.find( el => el.id === id );
obj = { ...obj, ...rest };
}
用途:
updateSubmission({id:'123', type:'abc', value:'xyz'})
未来的好处: