有没有lodash方法可以更新数组中的对象,其中匹配的项将具有新的键?

时间:2019-01-24 06:26:44

标签: javascript reactjs lodash

我添加了一个复选框选项,只需要用新的密钥更新我的对象

所以如果我取消选中列表中的项目,我想更新对象

[ { id: 1 }, { id: 2 } ]

取消选中后

[ { id: 1 }, { id: 2, unChecked: false } ]

有什么方法可以切换此状态? 预先感谢

2 个答案:

答案 0 :(得分:1)

您可以使用本机JavaScript和数组map方法来实现。在函数中检查id是否匹配,然后在其中添加密钥

let obj = [{
  id: 1
}, {
  id: 2
}]


function updateObj(obj, objId, key) {
  return obj.map((item) => {
    if (item.id === objId) {
      return {
        id: item.id,
        [key]: false
      }

    } else {
      return {
        id: item.id
      }
    }
  })
}

console.log(updateObj(obj, 2, 'unchecked'))

答案 1 :(得分:1)

如果.map不在unChecked数组中,则可以使用{{1}来添加id属性,而无需使用破折号并使用checked方法来执行此操作}。

请参见下面的工作示例:

.includes()