JavaScript教程:Array 数组

案例

案例1

一个人最多拿10瓶啤酒,那么如何拿20瓶啤酒?

案例2

一个班级的学生有30人,如何用变量表示这30人的数学成绩?用30个变量吗?

应该使用数组,数组的作用相当于上面的啤酒箱,可以装入30人的数学成绩

int lilei=80;
int hanmeimei=87;
.........
int lucy=85;

数组

数组就是:集合,存储数据,按一定的 顺序排列

菜鸟教程:

https://www.runoob.com/jsref/jsref-obj-array.html

定义

方式一(常用)

空数组

var 数组名 = [];

方式二(常用)

定义数组同时赋值元素

var 数组名 = ['李雷',18 , 1.82 , true];

方式三

var 数组名=new Array();

方式四

var 数组名=new Array('李雷',18 , 1.82 , true);

常见操作

菜鸟教程

索引

相当于 编号 ,数组中的每一个元素,都会有一个编号,从0开始

注意: 索引从0开始

数组的访问

初始化数组后,通过 索引 访问

格式:

数组名[索引]

例子:

查看动态初始化数组的元素值:

var arr = ['李雷',18 , 1.82 , true];
System.out.println(arr[0]);

执行结果为:李雷

数组的修改

通过索引修改

格式:

数组名[索引]=值;

例子:

var arr = [];
arr[0]='李雷';
arr[1]=20;
arr[2]=1.82;
arr[3]=true;
console.log(arr[0]);
console.log(arr[1]);
console.log(arr[2]);
console.log(arr[3]);

数组的长度属性

数组都有长度,表示数组有多少个元素,通过 数组名.length获取,number 类型。由次可以推断出

数组的最大索引:数组名.length-1

var arr = ['李雷',18 , 1.82 , true];
console.log(arr.length);

数组遍历【重点】

就是将数组中的每个元素获取出来,需要配合 循环语句

var arr = ['李雷',18 , 1.82 , true];

for (var i = 0; i < arr.length; i++) {
    console.log(arr[i]);
}

splice() 方法

插入元素

var arr = ['李雷',18 , 1.82 , true];
arr.splice(2, 0, "lucy", "lili") // 从索引是2的位置开始插入
console.log(arr.toString())

参数:

  • 第一个参数 2:表示新元素添加到 索引 是 2 的位置

  • 第二个参数 0:表示删除 0 个元素

  • 其余参数:表示要添加的新元素

返回:

  • 当删除时,有返回值,表示包含已删除项的数组

根据索引删除元素

var arr = ['李雷',18 , 1.82 , true];
var arr2=arr.splice(1, 1) // 从索引是1的位置开始删除,删除1个元素
console.log(arr.toString())
console.log(arr2.toString())

参数:

  • 第一个参数 1:从 索引 是1的位置开始删除

  • 第二个参数 1:删除1个元素

其他操作

转换为字符串

var arr = ['李雷',18 , 1.82 , true];
console.log(arr.toString())

将数组元素组合为一个字符串

var arr = ['李雷',18 , 1.82 , true];
console.log(arr.join(','))

slice()切片

从数组中截取一个新的数组

var arr = ['李雷',18 , 1.82 , true];

var arr2=arr.slice(1,3);
console.log(arr2.toString())

slice() 参数:

  • 第1个参数:从该索引处开始截取。
    可以是负数,-1 表示倒数第1个元素,-2 表示倒数第2个元素
  • 第2个参数:截止到该索引处(不包含该元素)。不写此参数表示截取到末尾
    可以是负数,-1 表示倒数第1个元素,-2 表示倒数第2个元素

返回:

  • 返回截取的数组

根据 值 获取 第一次出现的位置

根据 值 获取 第一次出现的位置(索引)

var arr = ['李雷',18 , 1.82 , true];

var index=arr.indexOf(1.82);
console.log(index)

根据值删除元素

var arr = ['李雷',18 , 1.82 , true];

var index=arr.indexOf(1.82);
arr.splice(index,1)
console.log(arr.toString())

在数组头部插入元素

var arr = ['李雷',18 , 1.82 , true];
arr.unshift('韩梅梅')

在数组末尾添加元素

var arr = ['李雷',18 , 1.82 , true];
arr.push("韩梅梅")

删除第一个元素

var arr = ['李雷',18 , 1.82 , true];
var v = arr.shift() // 返回第一个被删除的元素
console.log(v)
console.log(arr)

删除最后一个元素

var arr = ['李雷',18 , 1.82 , true];
var v = arr.pop() // 返回最后一个被删除的元素
console.log(v)
console.log(arr)

判断元素是否存在

var students = new Array(4);
students[0] = "李雷";
students[1] = "韩梅梅";
students[3] = "lucy";
students[4] = "lili";
// 判断数组中是否包含某个元素
var res = students.includes("lucy")
console.log("res:",res)
var res2 = students.includes("张三")
console.log("res2:",res2)

合并(连接)数组

var arr = ['李雷',18 , 1.82 , true];
var arr2 = ['韩梅梅',17 , 1.62 , false];
var arr3 = arr.concat(arr2);
console.log(arr3.toString())

特点:

  • 不会更改现有数组。它总是返回一个新数组
  • 可以连接n个数组。arr.concat(arr2,arr3);

清空数组

arr.length = 0

原文出处:/show_1IX1HlHVGxrD.html