JavaScript 数组 push

摘要: 在本教程中,您将学习如何使用 JavaScript 数组 push() 方法将一个或多个元素添加到数组的末尾。

JavaScript 数组 push() 方法介绍

Array.prototype.push() 方法将一个或多个元素添加到数组的末尾,并返回新数组的长度。

以下是 push() 方法的语法

push(newElement);
push(newElement1,newElement2);
push(newElement1,newElement2,...,newElementN);

push() 方法返回您在调用该方法的数组对象的 length 属性的新值。

JavaScript 数组 push() 方法示例

让我们举一些使用 push() 方法的例子。

1) 使用数组 push() 将一个元素追加到数组

以下示例将数字 40 添加到 numbers 数组的末尾

let numbers = [10, 20, 30];

const length = numbers.push(40);

console.log(length);
console.log(numbers);
Code language: JavaScript (javascript)

输出

4
[ 10, 20, 30, 40 ]Code language: JSON / JSON with Comments (json)

它是如何工作的。

首先,定义 numbers 数组,其中包含三个数字

let numbers = [10, 20, 30];Code language: JavaScript (javascript)

其次,使用 push() 方法将数字 40 添加到 numbers 数组的末尾,并将返回值赋给 length 变量

const length = numbers.push(40);Code language: JavaScript (javascript)

第三,输出 length 变量和 numbers 数组

console.log(length);
console.log(numbers);Code language: JavaScript (javascript)

下图说明了示例的工作原理

2) 使用数组 push() 将多个元素添加到数组的末尾

以下示例展示了如何使用 push() 方法将多个元素添加到数组的末尾

let numbers = [10, 20, 30];

const length = numbers.push(40, 50);

console.log(length);
console.log(numbers);Code language: JavaScript (javascript)

输出

5
[ 10, 20, 30, 40, 50 ]Code language: JSON / JSON with Comments (json)

下图说明了它是如何工作的

3) 使用 push() 将一个数组的元素追加到另一个数组

假设您有两个数组 colorscmyk

let colors = ['red', 'green', 'blue'];
let cmyk = ['cyan', 'magenta', 'yellow', 'back'];Code language: JavaScript (javascript)

并且您想将 cmyk 的元素追加到 colors 数组。

为此,您可以使用 for...of 循环来遍历 cmyk 数组的元素,并使用 push() 方法将每个元素追加到 colors 数组,如下所示

let colors = ['red', 'green', 'blue'];
let cmyk = ['cyan', 'magenta', 'yellow', 'back'];

for (const color of cmyk) {
  colors.push(color);
}

console.log(colors);Code language: JavaScript (javascript)

输出

['red', 'green', 'blue', 'cyan', 'magenta', 'yellow', 'back']Code language: JSON / JSON with Comments (json)

从 ES6 开始,您可以使用 扩展运算符 (...) 来扩展 cmyk 数组的元素,并同时将它们推送到 colors 数组,如下所示

let colors = ['red', 'green', 'blue'];
let cmyk = ['cyan', 'magenta', 'yellow', 'back'];

colors.push(...cmyk);

console.log(colors);
Code language: JavaScript (javascript)

将 JavaScript 数组 push() 方法与类数组对象一起使用

Array.prototype.push() 方法旨在通用。因此,您可以使用 call()apply() 在类数组对象上调用 push() 方法。

在幕后,push() 方法使用 length 属性来确定插入元素的位置。如果 push() 方法无法将 length 属性转换为数字,它将使用 0 作为索引的值。

请参阅以下示例

let greetings = {
  0: 'Hi',
  1: 'Hello',
  length: 2,
  append(message) {
    [].push.call(this, message);
  },
};
greetings.append('Howdy');
greetings.append('Bonjour');

console.log(greetings);
Code language: JavaScript (javascript)

输出

{
  '0': 'Hi',
  '1': 'Hello',
  '2': 'Howdy',
  '3': 'Bonjour',
  length: 4,
  add: [Function: add]
}Code language: JavaScript (javascript)

它是如何工作的。

首先,定义 greetings 对象,该对象具有三个属性 12length 以及一个方法 append()

let greetings = {
  0: 'Hi',
  1: 'Hello',
  length: 2,
  append(message) {
    [].push.call(this, message);
  },
};Code language: JavaScript (javascript)

append() 方法调用数组对象的 push() 方法将 message 追加到 greetings 对象。

其次,调用 greetings 对象的 append() 方法

greetings.append('Howdy');
greetings.append('Bonjour');Code language: JavaScript (javascript)

在每次调用中,push() 使用 greetings 对象的 length 属性来确定它追加新元素的位置,并将 length 属性增加 1。

结果,greetings 对象在索引 23 处有两个新元素。在调用之后,length 属性为 4

第三,将 greetings 对象输出到控制台

console.log(greetings);Code language: JavaScript (javascript)

为了允许 append() 方法接受多个消息,您可以修改该方法,如下所示

let greetings = {
  0: 'Hi',
  1: 'Hello',
  length: 2,
  append() {
    [].push.call(this, ...arguments);
  },
};
greetings.append('Howdy', 'Bonjour');

console.log(greetings);
Code language: JavaScript (javascript)

它是如何工作的。

首先,从 append 方法中删除 message 参数。

其次,扩展 arguments 对象的元素,并将它们推送到 greetings 对象。

总结

  • 使用 JavaScript 数组 push() 方法将一个或多个元素追加到数组。
  • push() 方法也适用于类数组对象。
本教程是否有帮助?