/

JavaScript數組資料結構

JavaScript數組資料結構

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

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

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

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

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

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

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

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

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

1
const myArray = []

或者

1
const myArray = new Array()

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

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

1
const myArray = new Array(10)

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

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

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

1
myArray[0]

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

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

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

1
myArray[3] = 'Another item'

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

1
myArray.push(11)

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

在開頭:

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

在索引3處:

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

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

1
myArray.pop()

從頭部刪除一個項目:

1
myArray.shift()

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

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

1
2
3
4
for (let i = 0; i < myArray.length; i++) {
console.log(myArray[i]) //值
console.log(i) //索引
}
1
2
3
4
myArray.forEach((item, index) => {
console.log(item) //值
console.log(index) //索引
}
1
2
3
4
5
6
let i = 0
while (i < myArray.length) {
console.log(myArray[i]) //值
console.log(i) //索引
i = i + 1
}
1
2
3
4
5
6
7
8
9
10
// 迭代值
for (const value of myArray) {
console.log(value) //值
}

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

tags: [“JavaScript”, “array”, “data structure”]