在 JavaScript 中建立特定長度的陣列

Sahil Bhosale 2023年10月12日
  1. 在 JavaScript 中使用 Array() 建構函式建立一個長度陣列
  2. 使用 JavaScript 中的 apply() 方法建立一個長度陣列
  3. 使用 JavaScript 中的 map() 方法建立長度陣列
  4. 使用 JavaScript 中的 fill() 方法建立一個固定長度陣列
在 JavaScript 中建立特定長度的陣列

在 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]
作者: Sahil Bhosale
Sahil Bhosale avatar Sahil Bhosale avatar

Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.

LinkedIn

相關文章 - JavaScript Array