数组
1 声明
创建一个空数组有两种语法:
let arr = new Array();
let arr = [];
length 属性的值是数组中元素的总个数:
数组可以存储任何类型的元素。
数组就像对象一样,可以以逗号结尾:
使用 “at” 获取最后一个元素
假设我们想要数组的最后一个元素。
这里有一个更简短的语法 fruits.at(-1):
换句话说,arr.at(i):
如果 i >= 0,则与 arr[i] 完全相同。
对于 i 为负数的情况,它则从数组的尾部向前数。
pop/push, shift/unshift 方法
push 在末端添加一个元素.
pop 从末端删除出一个元素.
shift 从首段删除出一个元素.
unshift 在数组的首端添加元素:
例如
let fruits = ["Apple"];
fruits.push("Orange", "Peach");
fruits.unshift("Pineapple", "Lemon");
// ["Pineapple", "Lemon", "Apple", "Orange", "Peach"]
alert( fruits );
循环
遍历数组最古老的方式就是 for 循环:
但对于数组来说还有另一种循环方式,for…of:
let fruits = ["Apple", "Orange", "Plum"];
// 遍历数组元素
for (let fruit of fruits) {
alert( fruit );
}
for…of 不能获取当前元素的索引,只是获取元素值,但大多数情况是够用的。而且这样写更短。
当我们修改数组的时候,length 属性会自动更新。准确来说,它实际上不是数组里元素的个数,而是最大的数字索引值加一。
总结
##### 数组是一种特殊的对象,适用于存储和管理有序的数据项。
调用 new Array(number) 会创建一个给定长度的数组,但不含有任何项。
length 属性是数组的长度,准确地说,它是数组最后一个数字索引值加一。它由数组方法自动调整。
如果我们手动缩短 length,那么数组就会被截断。
获取元素:
你可以通过元素的索引获取元素,例如 arr[0]
我们也可以使用允许负索引的 at(i) 方法。对于负值的 i,它会从数组的末尾往回数。如果 i >= 0,它的工作方式与 arr[i] 相同。
我们可以通过下列操作以双端队列的方式使用数组:
push(…items) 在末端添加 items 项。
pop() 从末端移除并返回该元素。
shift() 从首端移除并返回该元素。
unshift(…items) 从首端添加 items 项。
遍历数组的元素:
for (let i=0; i<arr.length; i++) — 运行得最快,可兼容旧版本浏览器。
for (let item of arr) — 现代语法,只能访问 items。
for (let i in arr) — 永远不要用这个。
比较数组时,不要使用 == 运算符(当然也不要使用 > 和 < 等运算符),因为它们不会对数组进行特殊处理。它们通常会像处理任意对象那样处理数组,这通常不是我们想要的。
但是,我们可以使用 for…of 循环来逐项比较数组。