有时你需要在数组末尾添加一个或多个新的值。在这种情况下,你需要使用 push() 方法。

push() 方法将在 JavaScript 的数组末尾添加一个或多个参数:

let arr = [0, 1, 2, 3];
arr.push(4);
console.log(arr); // [0, 1, 2, 3, 4]

这个方法接受无限数量的参数,你可以在数组的末尾添加任意数量的元素。

let arr = [0, 1, 2, 3];
arr.push(4, 5, 6, 7, 8, 9);
console.log(arr); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

push() 方法也返回新数组的长度。

let arr = [0, 1, 2, 3];
let newLength = arr.push(4);
console.log(newLength); // 5

在 JavaScript 中使用 push 的示例和常见错误

如何重新使用数组赋值

常见的错误是使用 push 的输出将数组重新赋值。

let arr = [0, 1, 2, 3];
arr = arr.push(4);
console.log(arr); // 5

为了避免这个错误,你需要记住,push  更改了数组,并返回了新的长度。如果使用 push() 的返回值重新分配变量,则将覆盖数组值。

如何将一个数组的内容添加到另一个数组的末尾

如果要将数组的内容添加到另一个数组的末尾,则可以使用 push 方法。push 将把你输入的任何参数作为新元素添加到数组末尾。必须使用扩展运算符将数组分拆,再把它的元素添加到另一个数组末尾:

let arr1 = [0, 1, 2, 3];
let arr2 = [4, 5, 6, 7];
arr1.push(...arr2);
console.log(arr1); // [0, 1, 2, 3, 4, 5, 6, 7]

如何在类似数组的对象上使用 push

有些对象与数组相似(例如 arguments 对象——允许访问函数的所有参数的对象),但不具有数组具有的所有方法。

为了能够在这些方法上使用 push 或其他数组方法,首先必须将它们转换为数组。

function myFunc() {
   let args = [...arguments];
   args.push(4);
   returns args;
}

console.log(myFunc(0, 1, 2, 3)); // [0, 1, 2, 3, 4]

如果不先将类似数组的 arguments 对象更改为数组,则代码将报错:TypeError: arguments.push is not a function

结语

如果你使用数组,请理解清楚 push 的用法。它在数组的末尾添加一个或多个元素,并返回该数组的新长度。

原文:JavaScript Append to Array: a JS Guide to the Push Method,作者:Ilenia Magoni