2.5JavaScript引用类型之数组(Array)

数组是一种数据结构。

  • 数组的索引是隐式的整数类型。
  • 数组的索引是有序的,包含 length 个元素的数组从 0 索引到 length-1
  • 数组的元素可以是任意类型,且不必都属于同一个类型,可以随时改变类型。
  • 数组的元素的个数(长度)可以动态改变,可以向数组添加、更改、删除元素。
  • 数组的元素允许重复的元素。

1.数组声明

注意:最后一个元素后面允许有逗号 ,,这样要添加一个新元素时很方便。

//字面量创建方式

//创建一个空数组
let arr = [];
//创建一个数组长度为N的数组(直接填入元素)       
let arr = [元素1, 元素2, ..., 元素N];
//Array()构造函数创建方式
//Array()可以调用或不调用new,两者一样。

//创建一个空数组
let arr = [new] Array();
//创建一个数组长度为20的数组
let arr = [new] Array(20);
//创建一个数组长度为N的数组(直接填入元素)       
let arr = [new] Array(元素1, 元素2, ..., 元素N);

2.稀疏(Sparse)数组

如果逗号之间形成了间隙(hole),我们可以将带有间隙的数组叫做稀疏(Sparse)数组,反之,不带间隙的数组叫做紧凑(Dense)数组。

//创建一个数组长度为3的数组(中间的空的元素2值为undefined)
let arr = [元素1, , 元素3];

3.多维数组

数组是可以嵌套的, 这就意味着一个数组可以作为一个元素被包含在另外一个数组里面。利用JavaScript数组的这个特性, 可以创建多维数组。

以下代码创建了一个二维数组。

let a = new Array(4);
for (i = 0; i < 4; i++) {
  a[i] = new Array(4);
  for (j = 0; j < 4; j++) {
    a[i][j] = "[" + i + "," + j + "]";
  }
}

这个例子创建的数组拥有以下行数据:

Row 0: [0,0] [0,1] [0,2] [0,3]
Row 1: [1,0] [1,1] [1,2] [1,3]
Row 2: [2,0] [2,1] [2,2] [2,3]
Row 3: [3,0] [3,1] [3,2] [3,3]

4.访问数组中的元素

可以使用变量名后跟方括号 [] 包含索引来访问数组中索引对应的元素。

另外,还可以使用 at() 实例方法访问数组中的元素。

区别浏览器最低版本要求是否支持负数索引索引超出范围
[]Chrome 1、Firefox 1、Safari 1。不支持返回 undefined
at()Chrome 92、Firefox 90、Safari 15.4。支持返回 undefined
//[]
//正数索引从左往右从0开始,不支持负数索引。
//访问数组中的元素
let a = arr[索引];

//添加或更改数组中的元素
arr[索引] = 值;

//删除数组中的元素,将被删了的元素的值赋为undefined,数组长度不变。
delete arr[索引];
//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

(0)
huoxiaoqiang的头像huoxiaoqiang
上一篇 2020年9月4日
下一篇 2020年9月6日

相关推荐

  • 1.3JavaScript语言的非运算符(Non-Operator)和运算符(Operator)

    1.非运算符 非运算符 描述 空白 空格(U+0020)、水平制表符(\t,U+0009)、垂直制表符(\v,U+000B)、分页符(\f,U+000C)。 行结束符 换行符(\n,U+000A)、回车符(\r,U+000D)、行分隔符(U+2028)、段落分隔符(U+2029)。 , 逗号 ; 分号 () 圆括号 […

  • 1.6JavaScript语言的常量(Constant)

    1.常量声明 常量在赋值后不可以通过重新赋值改变其值,然而,对象被赋值给常量后,改变对象的属性是可以的。 2.常量分类 2.1全局常量 名称 修饰符 全局常量 —————— 2.2成员常量 名称 修饰符 类常量 —————— 2.3局部常量 名称 修饰符 局部常量 ——————

  • 3.TypeScript常用语法一览表

    1.JSDoc注释 2.非运算符 非运算符 描述 标识符? 用于函数的形参名、对象类型的属性名后面,表示是可选的(可传递实参,也可不传递实参,当不传递实参的时候,相当于传递了 undefined 值)。 3.类型 3.1常用类型 类型 描述 bigint 大整数类型 number 数值类型 boolean 布尔类型 s…

发表回复

登录后才能评论