Array
数组是一种类列表对象,它的原型中提供了遍历和修改元素的相关操作。JavaScript 数组的长度和元素类型都是非固定的。因为数组的长度可随时改变,并且其数据在内存中也可以不连续,所以 JavaScript 数组不一定是密集型的,这取决于它的使用方式。
创建数组
var arr = new Array(1, 2, 3, 4, 5)console.log(arr) // [1, 2, 3, 4, 5]var arr = Array(1, 2, 3, 4, 5)console.log(arr) // [1, 2, 3, 4, 5]var arr = [1, 2, 3, 4, 5]console.log(arr) // [1, 2, 3, 4, 5]
访问数组
var arr = [1, 2, 3, 4, 5]console.log(arr[0]) // 1console.log(arr[arr.length - 1]) // 5console.log(arr['1']) // 2
遍历数组
更多遍历方法参见 遍历数组的方法
var arr = [1, 2, 3]// for 循环遍历for (let i = 0; i < arr.length; i++) {console.log(arr[i])/*** 1* 2* 3*/}// for of 遍历for (const item of arr) {console.log(item)/*** 1* 2* 3*/}
使用关键字 delete 删除数组中的元素
虽然元素被删除了
但数组的总长度依然不变
删除的元素被 empty 代替 变成了稀疏数组
const arr = [0, 1, 2, 3, 4, 5,]console.log(arr, arr.length) // [0, 1, 2, 3, 4, 5] 6delete arr[4]console.log(arr, arr.length) // [0, 1, 2, 3, empty, 5] 6delete arr[0]console.log(arr, arr.length) // [empty, 1, 2, 3, empty, 5] 6
稀疏数组
稀松数组指的是数组的长度(length)与数组中有效元素的总数不相等
这里的无效元素主要指的是 empty
我们可以使用 forEach 函数来看看 empty 是否有被遍历循环到
const arr = [, , , undefined, null, 1, 2, 3, 4,]console.log(arr.length) // 9console.log(arr) // [empty, empty, empty, undefined, null, 1, 2, 3, 4]arr.forEach(item => console.log(item))/*** 这里只打印出来了 6 个结果* 可以看出数组中的 empty 是无效元素* undefined* null* 1* 2* 3* 4*/
