首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JavaScript中更新对象属性的更短的方法?

在JavaScript中更新对象属性的更短的方法?
EN

Stack Overflow用户
提问于 2021-05-18 06:26:52
回答 2查看 2.2K关注 0票数 1

我有一个用户提交的不同问题列表,每当它被更新,我有几个属性,我正在更新。我想知道是否有更好的方法,也许通过破坏或传播,使这个更干净/更短?下面是我现在正在做的事情,我已经减少了示例中属性的数量,但是在实际的项目中,我一个一个地更新了大约5-6个属性,我觉得一个一个地设置它有点重复。

代码语言:javascript
复制
updateSubmission ( id, type, value ) {
  const obj = state.submission.filter( el => el.id === id )[ 0 ]
  obj.type = type
  obj.value = value
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-18 06:27:59

使用.find查找单个匹配对象而不是.filter,然后可以用简写方式Object.assign这两个属性:

代码语言:javascript
复制
updateSubmission ( id, type, value ) {
  Object.assign(
    state.submission.find( el => el.id === id ),
    { type, value }
  );
}
票数 3
EN

Stack Overflow用户

发布于 2021-05-18 06:59:51

如果您可以更改updateSubmission的签名,那么也可以使代码更通用。

代码语言:javascript
复制
updateSubmission ({ id, ...rest }) {
  let obj = state.submission.find( el => el.id === id );
  obj = { ...obj, ...rest };
}

使用:

代码语言:javascript
复制
updateSubmission({id:'123', type:'abc', value:'xyz'})

未来收益:

  1. 如果明天,params的顺序会改变吗?然后,代码在不改变签名的情况下工作。
  2. --不管您之前有多少参数,在对象析构的情况下,这些代码不需要向签名添加参数。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67581004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档