【JavaScript 教程】第六章 數(shù)組18—push() :將一個(gè)或多個(gè)元素添加到數(shù)組的末尾

來源 | https://www.javascripttutorial.net/
翻譯 | 楊小愛
在今天的教程中,我們將學(xué)習(xí)如何使用 JavaScript Array push()方法將一個(gè)或多個(gè)元素添加到數(shù)組的末尾。
JavaScript Array push() 方法介紹
Array.prototype.push()方法將一個(gè)或多個(gè)元素添加到數(shù)組的末尾并返回新數(shù)組的長度。
下面顯示了push()方法的語法:
push(newElement);push(newElement1,newElement2);push(newElement1,newElement2,...,newElementN);
push() 方法返回調(diào)用該方法的數(shù)組對(duì)象的長度屬性的新值。
JavaScript Array push() 方法示例
讓我們舉一些使用 push() 方法的例子。
1)、 使用數(shù)組 push() 將一個(gè)元素追加到數(shù)組中
以下示例將數(shù)字 40 添加到 numbers 數(shù)組的末尾:
let numbers = [10, 20, 30];const length = numbers.push(40);console.log(length);console.log(numbers);
輸出:
4[ 10, 20, 30, 40 ]
它是怎么工作。
首先,定義包含三個(gè)數(shù)字的 numbers 數(shù)組:
let numbers = [10, 20, 30];
其次,使用方法將數(shù)字添加到數(shù)組40的末尾并將返回值分配給變量:numbers push() length
const length = numbers.push(40);第三、輸出length變量和numbers數(shù)組:
console.log(length);console.log(numbers);
下圖說明了該示例的工作原理:

2)、 使用數(shù)組 push() 將多個(gè)元素添加到數(shù)組末尾
以下示例顯示了如何使用push()方法將多個(gè)元素添加到數(shù)組的末尾:
let numbers = [10, 20, 30];const length = numbers.push(40, 50);console.log(length);console.log(numbers);
輸出:
5[ 10, 20, 30, 40, 50 ]
下圖說明了它是如何工作的:

3)、使用 push() 將一個(gè)數(shù)組的元素追加到另一個(gè)數(shù)組
假設(shè)您有兩個(gè)數(shù)組colors和 cmyk:
let colors = ['red', 'green', 'blue'];let cmyk = ['cyan', 'magenta', 'yellow', 'back'];
并且,我們想將 cmyk 的元素附加到顏色數(shù)組中。
為此,我們可以使用 for...of 循環(huán)遍歷 cmyk 數(shù)組的元素,并使用 push() 方法將每個(gè)元素附加到 colors 數(shù)組,如下所示:
let colors = ['red', 'green', 'blue'];let cmyk = ['cyan', 'magenta', 'yellow', 'back'];for (const color of cmyk) {colors.push(color);}console.log(colors);
輸出:
['red', 'green', 'blue', 'cyan', 'magenta', 'yellow', 'back']從 ES6 開始,我們可以使用擴(kuò)展運(yùn)算符( ...) 來擴(kuò)展cmyk數(shù)組的元素并同時(shí)將它們推送到colors數(shù)組中,如下所示:
let colors = ['red', 'green', 'blue'];let cmyk = ['cyan', 'magenta', 'yellow', 'back'];colors.push(...cmyk);console.log(colors);
對(duì)類數(shù)組對(duì)象使用 JavaScript Array push() 方法
Array.prototype.push() 方法被設(shè)計(jì)成是通用的。因此,我們可以在類數(shù)組對(duì)象上使用 call() 或 apply() 調(diào)用 push() 方法。
在底層, push() 方法使用 length 屬性來確定插入元素的位置。如果 push() 方法無法將 length 屬性轉(zhuǎn)換為數(shù)字,它將使用 0 作為索引的值。
請(qǐng)參見以下示例:
let greetings = { 0: 'Hi', 1: 'Hello', length: 2,append(message) {[].push.call(this, message);},};greetings.append('Howdy');greetings.append('Bonjour');console.log(greetings);
輸出:
{ '0': 'Hi', '1': 'Hello', '2': 'Howdy', '3': 'Bonjour', length: 4, add: [Function: add]}這個(gè)是怎么運(yùn)行的。
首先,定義具有三個(gè)屬性 1、2 和length以及一個(gè)方法 append() 的 greetings 對(duì)象:
let greetings = { 0: 'Hi', 1: 'Hello', length: 2,append(message) {[].push.call(this, message);},};
append() 方法調(diào)用數(shù)組對(duì)象的 push() 方法將message附加到 greetings 對(duì)象。
第二、調(diào)用greetings對(duì)象的append()方法:
greetings.append('Howdy');greetings.append('Bonjour');
在每次調(diào)用中,push() 使用問候?qū)ο蟮拈L度屬性來確定它附加新元素的位置并將長度屬性增加一。
結(jié)果,greetings 對(duì)象在索引 2 和 3 處多了兩個(gè)元素。調(diào)用后的 length 屬性為 4。
第三,將greetings對(duì)象輸出到控制臺(tái):
console.log(greetings);
要允許 append() 方法接受多個(gè)消息,我們可以像這樣修改該方法:
let greetings = { 0: 'Hi', 1: 'Hello', length: 2,append() {[].push.call(this, ...arguments);},};greetings.append('Howdy', 'Bonjour');console.log(greetings);
它如何運(yùn)行?
首先,從 append 方法中刪除 message 參數(shù)。
其次,將 arguments 對(duì)象的元素展開,并將它們推送到 greetings 對(duì)象。
總結(jié)
使用 JavaScript 數(shù)組 push() 方法將一個(gè)或多個(gè)元素附加到數(shù)組。
push() 方法也適用于類似數(shù)組的對(duì)象。
更多教程
【JavaScript 教程】第六章 數(shù)組17—flatMap() :對(duì)每個(gè)元素執(zhí)行映射函數(shù)并將結(jié)果展平
【JavaScript 教程】第六章 數(shù)組16—flat() :遞歸地將數(shù)組展平到指定的深度
【JavaScript 教程】第六章 數(shù)組15—join() :將所有元素連接成一個(gè)字符串
【JavaScript 教程】第六章 數(shù)組14—reduce() :將數(shù)組的元素減少為一個(gè)值
【JavaScript 教程】第六章 數(shù)組13— forEach() :遍歷數(shù)組元素
【JavaScript 教程】第六章 數(shù)組12— map() :轉(zhuǎn)換數(shù)組元素
【JavaScript 教程】第六章 數(shù)組11— filter() :過濾數(shù)組中的元素
【JavaScript 教程】第六章 數(shù)組10— sort() :對(duì)數(shù)組中的元素進(jìn)行排序
【JavaScript 教程】第六章 數(shù)組09— some() :檢查數(shù)組中是否至少有一個(gè)元素通過了測試
【JavaScript 教程】第六章 數(shù)組08— every() :檢查數(shù)組中的每個(gè)元素是否都通過了測試
【JavaScript 教程】第六章 數(shù)組07— index() :在數(shù)組中定位一個(gè)元素
【JavaScript 教程】第六章 數(shù)組06— slice() :復(fù)制數(shù)組元素
【JavaScript 教程】第六章 數(shù)組05— splice():刪除、插入和替換
【JavaScript 教程】第六章 數(shù)組04— JavaScript 隊(duì)列
【JavaScript 教程】第六章 數(shù)組03— Stack :使用 Array 的push()和pop()方法實(shí)現(xiàn)堆棧數(shù)據(jù)結(jié)構(gòu)
【JavaScript 教程】第六章 數(shù)組02— Array Length:如何有效地使用數(shù)組的長度屬性
【JavaScript 教程】第六章 數(shù)組01— 介紹JavaScript中的Array類型
學(xué)習(xí)更多技能
請(qǐng)點(diǎn)擊下方公眾號(hào)
![]()

