【问题标题】:How to add a new value to existing object in array如何向数组中的现有对象添加新值
【发布时间】:2020-07-27 06:21:29
【问题描述】:
如何向数组persons 中的对象添加值?
我要添加的值是lastname,变量id是应该添加值的对象的ID。
const lastname = 'Jackson';
const id = 2;
const persons = [
{
id: 1
firstname: 'Mary',
lastname: 'Jackson'
},
{
id: 2
firstname: 'Ash'
}
]
【问题讨论】:
标签:
reactjs
typescript
react-hooks
tsx
【解决方案1】:
persons.forEach(person => {
if(this.id === person.id) person.lastname = this.lastname
})
【解决方案2】:
您需要遍历数组并添加一个条件来检查 id 是否与 person.id 匹配,然后将 lastname 添加到该 person 对象。如果您不想更改原始数组,请选择 .map() 否则 .forEach()
与.forEach():
persons.forEach(person => {
if (person.id === id) {
person.lastname = lastname
}
})
与.map():
const newPersonsArr = persons.map(person => {
if (person.id === id) {
return {
...person,
lastname
}
}
return person;
})
【解决方案3】:
这是一个在不改变原始数组的情况下更新它的单行代码:
const updatedPersons = persons.map(p => p.id === id ? {...p, lastname} : p);