📅  最后修改于: 2023-12-03 15:41:58.505000             🧑  作者: Mango
有时候我们需要通过 Javascript 来更新对象的值。这时候,如果我们只知道对象的 id,就需要使用特定的方法来更新对象内的对象。
Object.assign() 方法是用来合并指定的对象,并返回合并后的对象。我们可以使用这个方法来更新某个对象的属性值。
let obj = {
id: 1,
name: "张三",
age: 18
};
// 更新 obj 内的 name 属性
obj = Object.assign({}, obj, {
name: "李四"
});
console.log(obj); // 输出 { id: 1, name: '李四', age: 18 }
在这个例子中,我们使用 Object.assign() 方法来合并一个空对象和原始对象,同时更新 name 属性的值。注意,我们在更新后将结果赋值给原始对象本身,以便进行后续的操作。
ES6 提供了一种新的语法来更新对象属性的值--对象解构语法。我们可以使用这个语法来更新对象属性的值,而不是更改整个对象。
let obj = {
id: 1,
name: "张三",
age: 18
};
// 更新 obj 内的 name 属性
obj = {
...obj,
name: "李四"
};
console.log(obj); // 输出 { id: 1, name: '李四', age: 18 }
在这个例子中,我们使用解构语法来更新 name 属性的值。注意,在更新属性后,我们将结果赋值给原始对象本身。
在某些情况下,我们需要通过循环遍历数组中的对象,然后更新它们的属性。这时候,我们可以使用 Array.prototype.map 方法来实现这个目标。
let students = [
{
id: 1,
name: "张三",
age: 18
},
{
id: 2,
name: "李四",
age: 20
},
{
id: 3,
name: "王五",
age: 22
}
];
// 通过 id 更新 name 属性
students = students.map(student => {
if (student.id === 2) {
return {
...student,
name: "赵六"
}
}
return student;
});
console.log(students);
在这个例子中,我们使用 Array.prototype.map 方法来循环遍历每个学生对象,并判断它们的 id 值。如果 id 值符合指定的条件,我们就使用解构语法来更新它们的 name 属性值。最后,我们将更新后的数组赋值给原始数组本身。
通过以上三种方法,我们可以轻松地更新 JavaScript 对象内的对象。Object.assign() 和对象解构语法允许我们直接更新对象属性,而 map 方法则允许我们循环遍历数组并更新对应属性。这些方法都是十分实用和方便的。