如何在 JavaScript 中将对象推送到数组
要将对象推送到 JavaScript 中的数组,请以该对象作为参数调用数组上的 push() 方法,即 arr.push(obj)。 Push() 方法会将元素添加到数组的末尾。
例如:
const arr = [];
const obj = { name: ‘Jeff’ };
// 👇 Push object to array
arr.push(obj);// [{ name: ‘Jeff’ } ]
console.log(arr);
Push() 方法获取一个对象并将其添加到数组的末尾。
初始化期间将对象推送到数组
如果变量是在推送对象之前新创建的(如前面的示例所示),则可以简单地将对象放在方括号 ([]) 之间,以便在初始化变量时将其包含在数组中:
const obj = { name: ‘Jeff’ };
// 👇 Push object to array with initialization
const arr = [obj];console.log(arr);
将多个对象推送到数组
Push() 方法实际上接受可变数量的参数。 它们按照传递给 Push() 的顺序分别添加到数组的末尾。
例如:
const arr = [];
const obj1 = { name: ‘Samantha’ };
const obj2 = { name: ‘Chris’ };
const obj3 = { name: ‘Mike’ };arr.push(obj1, obj2, obj3);
// [ { name: ‘Samantha’ }, { name: ‘Chris’ }, { name: ‘Mike’ } ]
console.log(arr);
将对象推入数组而不进行突变
Push() 方法将一个对象添加到数组中,这意味着它会被修改。 如果您不想这样做,可以在调用 push() 之前使用扩展语法 (…) 创建原始数组的副本:
const arr = [{ name: ‘Jerry’ }];
const newArr = […arr];
newArr.push({ name: ‘Mia’ });
// [ { name: ‘Jerry’ }, { name: ‘Mia’ } ]
console.log(newArr);// 👇 Original not modified
console.log(arr); // [ { name: ‘Jerry’ } ]
与我们之前所做的类似,我们可以在扩展语法之后将对象包含在方括号中,以在初始化时将对象推送到数组的副本:
const arr = [{ name: ‘Jerry’ }];
// 👇 Push object to array without mutation
const newArr = […arr, { name: ‘Mia’ }];// [ { name: ‘Jerry’ }, { name: ‘Mia’ } ]
console.log(newArr);// Original not modified
console.log(arr); // [ { name: ‘Jerry’ } ]
虽然并不总是必要的,但通过避免突变,我们可以使代码更具可读性、可预测性和模块化。