在 JavaScript 中建立特定長度的陣列
-
在 JavaScript 中使用
Array()
建構函式建立一個長度陣列 -
使用 JavaScript 中的
apply()
方法建立一個長度陣列 -
使用 JavaScript 中的
map()
方法建立長度陣列 -
使用 JavaScript 中的
fill()
方法建立一個固定長度陣列
在 JavaScript 中,你可能需要建立或宣告一個特定長度的陣列,並在陣列中插入所需的值。它可以使用不同的方式來實現。
下面是一些在 JavaScript 中建立特定長度陣列的最常用方法。現在只在你認為需要的情況下使用它,因為大多數情況下,不需要建立或宣告特定長度的陣列;你可以動態建立一個陣列並使用它。
在 JavaScript 中使用 Array()
建構函式建立一個長度陣列
建立特定長度的空陣列的第一種方法是使用 Array()
建構函式並將整數作為引數傳遞給它。由於我們正在呼叫建構函式,因此我們將使用 new
關鍵字。
var arr = new Array(5);
console.log(arr)
輸出:
[undefined, undefined, undefined, undefined, undefined]
如果你使用 JSlint,不推薦這種建立特定長度陣列的方式,因為它可能會導致問題。由於這種方式是模稜兩可的,它不僅建立特定長度的陣列,還可以用於執行其他操作,例如建立包含值的陣列,如下所示。
var arr_2 = new Array('5');
console.log(arr_2)
輸出:
[ "5" ]
使用 JavaScript 中的 apply()
方法建立一個長度陣列
Array
建構函式提供了一個名為 apply()
的方法。使用這個 apply()
方法,你可以以陣列的形式為方法提供引數。apply()
方法有兩個引數,第一個是對 this
引數的引用,第二個是陣列。
var myArr = Array.apply(null, Array(5));
console.log(myArr);
輸出:
[undefined, undefined, undefined, undefined, undefined]
要建立一個特定長度的空陣列,假設為 5
,我們將傳遞 null
作為第一個引數,第二個引數是陣列 Array(5)
。這將建立一個長度為 5 的陣列,並使用 undefined
值初始化每個元素。
或者,你也可以執行以下操作。在這裡,你可以傳遞一個陣列物件作為第二個引數,然後在其中定義要建立的陣列的長度,在本例中為 5
。
var arr = Array.apply( null, { length: 5 } );
console.log(arr);
console.log(arr.length);
輸出:
[undefined, undefined, undefined, undefined, undefined]
5
使用 JavaScript 中的 map()
方法建立長度陣列
另一種建立特定長度陣列的方法是使用 JavaScript 中的 map()
方法。在這裡,Array(5)
建構函式將建立一個長度為 5 的空陣列。這與我們之前看到的類似。然後使用擴充套件運算子 ...
,我們將擴充套件陣列的每個元素並將其括在一個像這樣的方括號內 [...Array(5)]
。它將建立一個長度為 5 的陣列,其中每個元素的值都是 undefine
。然後為了初始化這個陣列,我們將使用 map()
方法。
[...Array(5)].map(x => 0);
輸出:
[0, 0, 0, 0, 0]
使用 map()
方法,我們將獲取 x
變數中的每個元素,然後向其新增值零。這會將陣列的所有元素初始化為零。
使用 JavaScript 中的 fill()
方法建立一個固定長度陣列
fill()
方法的工作方式也與 map()
相同;唯一的問題是 fill()
不接受任何函式作為引數。它直接將一個值作為輸入。你可以建立一個特定長度的陣列 Array(5)
,然後用一些整數值填充該陣列,如下所示。
Array(5).fill(0);
// [0, 0, 0, 0, 0]