ttt*_*ttt 1 javascript ecmascript-6 lodash
我有一组 person 对象,我想更新一个对象。
persons: [{
id: '1',
name: 'John',
age: 12
}, {
id: '2',
name: 'Tom',
age: 13
}, {
id: '3',
name: 'David',
age: 14
}]
Run Code Online (Sandbox Code Playgroud)
我的功能是:
function updatePersonsWith(id, propName, value) {
this.persons.???
}
Run Code Online (Sandbox Code Playgroud)
传递的参数是id我想更新的人,propName是的属性person的对象,可以是id,name或者age,value是我想,以取代的价值。
我想通过它的 id 找到一个对象并只更新数组的这个对象。
updatePersonsWith(2, age, 16)
Run Code Online (Sandbox Code Playgroud)
结果将是:
persons: [{
id: '1',
name: 'John',
age: 12
}, {
id: '2',
name: 'Tom',
age: 16
}, {
id: '3',
name: 'David',
age: 14
}]
Run Code Online (Sandbox Code Playgroud)
可能是 ES6 或使用 lodash。
尝试:
let person = this.persons.find((person) => {
return person.id === id;
});
if (person && person[propName]) {
person[propName] = value;
}
Run Code Online (Sandbox Code Playgroud)
工作示例:
let person = this.persons.find((person) => {
return person.id === id;
});
if (person && person[propName]) {
person[propName] = value;
}
Run Code Online (Sandbox Code Playgroud)