我有一个人物对象数组,我想更新一个对象。
persons: [{
id: '1',
name: 'John',
age: 12
}, {
id: '2',
name: 'Tom',
age: 13
}, {
id: '3',
name: 'David',
age: 14
}]
我的功能是:
function updatePersonsWith(id, propName, value) {
this.persons.???
}
传递的参数是我要更新的人id
,propName
是person
对象的属性,可以是id
,name
或age
,value
是我要替换的值。
我希望通过它的id找到一个对象并仅更新该数组的这个对象。
updatePersonsWith(2, age, 16)
结果将是:
persons: [{
id: '1',
name: 'John',
age: 12
}, {
id: '2',
name: 'Tom',
age: 16
}, {
id: '3',
name: 'David',
age: 14
}]
可以是ES6或使用lodash。
答案 0 :(得分:4)
您可以使用:
let persons = [{
id: '1',
name: 'John',
age: 12
}, {
id: '2',
name: 'Tom',
age: 13
}, {
id: '3',
name: 'David',
age: 14
}];
function updatePersonsWith(id, propName, value) {
let item = persons.find((v) => {
return v.id == id;
});
if (item && item.hasOwnProperty(propName)) {
item[propName] = value;
}
};
updatePersonsWith(2, 'age', 16);
console.log(persons)

答案 1 :(得分:1)
使用plt.table(... , bbox=(0.2,0.6,0.2,0.2))
,您可以这样做,
lodash