首页 > 解决方案 > 如何根据 id 更新对象

问题描述

我有一个对象数组:

employee = [
    {
      name: 'ashish',
      id: 1,
      date: '2020-11-12',
      gender: 'male',
      designation: 'developer'
    },
    {
      name: 'mishra',
      id: 2,
      date: '2020-10-08',
      gender: 'female',
      designation: 'tester'
    }
]

在我的按钮单击功能中,我得到了 id 和它的数据。我想更新 id 与我的数组的任何对象 id 匹配的记录

我试过这个。

editEmployee(id,data) {
    this.employee.find(item => item.id == id).name = this.employee;
  }
}

但出现错误:Type '{ name: string; id: number; date: string; gender: string; designation: string; }[]' is not assignable to type 'string'

有什么解决办法吗?

标签: javascriptangulartypescript

解决方案


你可以简单地做:

editEmployee(id,data) {
return this.employee.map(item => item.id == id ? data : item )
 }

更新

var employee = [
    {
      name: 'ashish',
      id: 1,
      date: '2020-11-12',
      gender: 'male',
      designation: 'developer'
    },
    {
      name: 'mishra',
      id: 2,
      date: '2020-10-08',
      gender: 'female',
      designation: 'tester'
    }
]
function editEmployee(id,data) {
  return employee.map(item => item.id === id ? data : item )
 }
 employee = editEmployee(1,{name:"youba"})
 console.log(employee)


推荐阅读