如何解决在 JavaScript 中更新对象属性的更短方法?
我有一份关于不同问题的用户提交列表,每当它更新时,我都会更新几个属性。我想知道是否有更好的方法可以通过破坏或传播来使这个更清洁/更短?这是我目前正在做的事情,我减少了示例中的属性数量,但在实际项目中我正在逐个更新大约 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'})
未来收益:
- 如果明天,参数的顺序改变?然后代码在不改变签名的情况下工作。
- 无论您之前有多少个参数,通过对象解构,代码都可以在不向签名中添加参数的情况下工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。