数组是任何编程语言中最基本的数据结构。
大多数(如果不是全部)编程语言都有数组,内置在语言中。
让我们来谈谈数组在大多数低级编程语言中代表什么,如C语言:它们代表计算机内存中一组连续的单元。
从内存中的一个单元开始(如果你想的话,把单元想象成电子表格中的单元是有帮助的),我们可以通过获得10个连续的槽来创建一个有10个槽的数组。
这样我们就可以进行一些操作,比如通过知道第一个槽的内存地址,即#0,然后简单地加上2 ,来访问#2槽。
在JavaScript中,我们的工作水平更高,数组的工作方式也不同。我们不能像C语言或其他低级语言那样访问内存,所以我们被抽象出了这种数组数学。
低级语言中的数组只能存储一种特定的数据类型,所以我们可以事先计算出一个数组会占用多少内存,这样我们就可以把它安全地存储在计算机内存中一个可以容纳它的地方。
在JavaScript中,数组可以承载任何种类的数据,将其混合。我们可以有一个数字,然后是一个对象,然后是另一个数组。
一个数组的初始化使用这样的语法。
或
const myArray = new Array()
没有什么区别,但我更喜欢速记语法[] 。
在JavaScript中,我们不需要在创建时指定数组的大小,但我们可以这样做。
const myArray = new Array(10)
然后我们就可以用数值填充数组。
let val = 1
for (const [i, v] of myArray.entries()) {
myArray[i] = val++
}
你可以用以下方法引用数组中的第一个项目。
(索引从0 开始),然后通过增加索引号来引用数组中的每个后续项。
myArray[4] //5
myArray[3 + 4] //8
你可以使用语法来改变任何位置上的项的值。
myArray[3] = 'Another item'
JavaScript中的数组在内部是对象,所以它们有方法。你可以使用push 方法在数组的最后添加一个项目。
你可以使用splice() 方法在任何位置添加一个项目(不要和slice() 相混淆)。
在开始的时候。
myArray.splice(0, 0, 'new item')
在索引3处。
myArray.splice(3, 0, 'new item')
你可以用以下方法从数组的末端移除一个项目
从数组的末尾移除一个项目,并从开头移除一个项目。
我们可以通过检查myArray.length 属性找到数组的长度。
我们还可以用循环来迭代数组中的项目。
for (let i = 0; i < myArray.length; i++) {
console.log(myArray[i]) //value
console.log(i) //index
}
myArray.forEach((item, index) => {
console.log(item) //value
console.log(index) //index
}
let i = 0
while (i < myArray.length) {
console.log(myArray[i]) //value
console.log(i) //index
i = i + 1
}
//iterate over the value
for (const value of myArray) {
console.log(value) //value
}
//get the index as well, using `entries()`
for (const [index, value] of myArray.entries()) {
console.log(index) //index
console.log(value) //value
}