数组是一种数据结构。
- 数组的索引是隐式的整数类型。
- 数组的索引是有序的,包含
length
个元素的数组从0
索引到length-1
。 - 数组的元素可以是任意类型,且不必都属于同一个类型,可以随时改变类型。
- 数组的元素的个数(长度)可以动态改变,可以向数组添加、更改、删除元素。
- 数组的元素允许重复的元素。
1.索引数组
注意:最后一个元素后面允许有逗号 ,
,这样要添加一个新元素时很方便。
//字面量创建方式
//创建一个空数组
let arr = [];
//创建一个数组长度为N的数组(直接填入元素)
let arr = [元素1, 元素2, ..., 元素N];
//Array()函数创建方式(加与不加new都一样)
//创建一个空数组
let arr = [new] Array();
//创建一个数组长度为20的数组
let arr = [new] Array(20);
//创建一个数组长度为N的数组(直接填入元素)
let arr = [new] Array(元素1, 元素2, ..., 元素N);
2.稀疏(Sparse)数组
数组可以包含“空槽(empty slot)”,我们可以将带空槽的数组叫做稀疏(Sparse)数组,反之,不带空槽的数组叫做紧凑(Dense)数组。
稀疏数组的空槽与填充值为 undefined
的槽不同。在某些方法中,空槽表现得好像填充值为 undefined
的槽,但在其它方法中(最明显的是数组迭代方法),会跳过空槽,但不会跳过填充值为 undefined
的槽。
//空槽在前面
let arr = [ , 2, 3];
console.log(arr); // Array(3) [ <1 empty slot>, 2, 3 ]
//空槽在中间
let arr = [1, , 3];
console.log(arr); // Array(3) [ 1, <1 empty slot>, 3 ]
//空槽在末尾
//注意:末尾的逗号是为了添加一个新元素时方便,不是空槽。
let arr = [1, 2, ];
console.log(arr); // Array(2) [ 1, 2 ]
3.多维数组
数组是可以嵌套的, 这就意味着一个数组可以作为一个元素被包含在另外一个数组里面。利用 JavaScript 数组的这个特性, 可以创建多维数组。
//字面量创建方式
let arr = [ [1, 2], [3, 4], [5, 6], [7, 8] ];
//Array()函数创建方式
let arr = new Array([1, 2], [3, 4], [5, 6], [7, 8]);
4.访问数组中的元素
可以使用变量名后跟方括号 []
包含索引来访问数组中索引对应的元素。
另外,还可以使用 at()
实例方法访问数组中的元素。
区别 | 浏览器最低版本要求 | 是否支持负数索引 | 索引超出范围 |
[] | Chrome 1、Firefox 1、Safari 1。 | 不支持 | 返回 undefined |
at() | Chrome 92、Firefox 90、Safari 15.4。 | 支持 | 返回 undefined |
//[]
//正数索引从左往右从0开始,不支持负数索引。
//访问
let a = arr[索引];
let a = arr[索引1][索引2];
//添加或更改
arr[索引] = 值;
arr[索引1][索引2] = 值;
//删除
//将被删了的元素的值赋为undefined,数组长度不变。
delete arr[索引];
delete arr[索引1][索引2];
//at()
//正数索引从左往右从0开始,负数索引从右往左从-1开始。
//访问
let a = arr.at(索引);
//添加或更改
arr.at(索引) = 值;
//删除
//将被删了的元素的值赋为undefined,数组长度不变。
delete arr.at(索引);
5.数组长度
arr.length
原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/javascript/javascriptlang/4736.html