數組是任何編程語言中最基本的資料結構。
數組在大多數(如果不是所有)編程語言中都是內建的。
讓我們來談談數組在大多數低級編程語言(如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) //值
}