數組是任何編程語言中最基本的資料結構。

數組在大多數(如果不是所有)編程語言中都是內建的。

讓我們來談談數組在大多數低級編程語言(如C語言)中的表示方式:它們表示計算機內存中一組連續的存儲單元。

從一個內存單元開始(如果你想的話,可以將這些單元想象成電子表格中的單元格),我們可以通過使用10個連續的存儲單元來創建一個包含10個插槽的數組。

這使我們能夠進行諸如通過知道第一個插槽(# 0)的內存地址,然後簡單地將 2 添加到該地址來訪問插槽#2之類的操作。

在JavaScript中,我們在更高層次上進行工作,數組的工作方式也不同。我們無法像C或其他低級語言那樣直接訪問內存,因此我們無法進行這種類型的數組數學運算。

低級語言中的數組只能存儲一種特定的數據類型,因此我們可以預先計算出數組將占用多少內存,以便將其安全地存儲在可以容納它的計算機內存中。

在JavaScript中,數組可以存儲任何類型的數據,並且可以混合使用。我們可以有一個數字,然後是一個物件,然後是另一個數組。

使用以下語法初始化數組:

const myArray = []

或者

const myArray = new Array()

這兩者沒有區別,但我更喜歡使用簡寫語法[]

在JavaScript中,我們不需要在創建時指定數組大小,但是我們可以這樣做:

const myArray = new Array(10)

然後我們可以填充數組的值:

let val = 1
for (const [i, v] of myArray.entries()) {
 myArray[i] = val++
}

您可以使用以下語法引用數組中的第一個項目:

myArray[0]

(索引從0開始),並且可以通過增加索引號獲取數組中的每個後續項目:

myArray[4] //5
myArray[3 + 4] //8

您可以使用以下語法更改任何位置的項目值:

myArray[3] = 'Another item'

JavaScript中的數組在內部是對象,因此它們具有方法。您可以使用 push方法將一個項目添加到數組的末尾:

myArray.push(11)

您可以使用splice()方法(不要與slice()混淆)在任何位置添加項目。

在開頭:

myArray.splice(0, 0, 'new item')

在索引3處:

myArray.splice(3, 0, 'new item')

您可以使用以下語法從數組的末尾刪除一個項目:

myArray.pop()

從頭部刪除一個項目:

myArray.shift()

我們可以通過檢查myArray.length屬性來獲取數組的長度。

我們可以使用循環迭代數組中的項目:

for (let i = 0; i < myArray.length; i++) {
 console.log(myArray[i]) //值
 console.log(i) //索引
}
myArray.forEach((item, index) => {
 console.log(item) //值
 console.log(index) //索引
}
let i = 0
while (i < myArray.length) {
 console.log(myArray[i]) //值
 console.log(i) //索引
 i = i + 1
}
// 迭代值
for (const value of myArray) {
 console.log(value) //值
}

// 使用 `entries()` 也可以得到索引
for (const [index, value] of myArray.entries()) {
 console.log(index) //索引
 console.log(value) //值
}