1.基本概念
数组是存储一系列值得变量集合,它是由一个或多个数组元素组成的,各元素之间使用逗号分隔。每个数组元素由下标和值构成。其中下标也可称为索引,以数字表示,默认从0开始依次递增,用于识别元素;值为元素内容,可以是任意类型的数据。
2.创建数组
1.使用Array对象创建数组
var area=new Array('','','');
2.使用[]创建数组
var weather =['',''];
3.数组的基本操作
1.获取数组的长度
length属性:var arr1=[77,1,99];console.log(arr1.length);
2.数组的访问与遍历
1.访问数组元素
要查看数组中某个具体的元素,可以通过“数组名[下标]”的方式获取指定下标的值
var arr1=[77,1,99];console.log(arr1[0]);
2.遍历数组元素
通常情况下,利用下标遍历数组可以使用for或for...in语句
for(variable in object) {...}variable指数组下标,object指变量名称。若object是一个对象,for...in还可以用于对象的遍历。
3.元素的添加与删改
1.添加元素
通过自定义数组元素下标的方式添加元素
var height=[];
height[2]=192;
2.修改元素
修改元素是为已含有值的元素重新赋值
var arr=[‘a’,'b','c','d'];
arr[2]=123;
3.元素的删除
利用delete关键字删除数组元素
delete arr[0];
4.常见二维数组的操作
// 使用Array对象创建数组
var info = new Array(new Array('Tom', 13, 155), new Array('Lucy', 11, 152));var arr= new Array(new Array, new Array); // 空二维数组
// 使用"[]"创建数组var num= [[1, 3], [2, 4]];
var empty = [[], []];// 空二维数组
var arr= [];// 创建一维空数组
//遍历
for(let i = 0; i< 3; ++i)
{arr [i] = []; // 将当前元素设置为数组
arr [i][0] = i; // 为二维数组元素赋值}
5.数组排序
1.冒泡排序
计算机科学领域中较简单的排序算法。实现原理:在冒泡排序的过程中,按照要求从小到大排序或从大到小排序,不断比较数组中相邻两个元素的值,较小或较大的元素前移。
2.插入排序
冒泡排序的优化,是一种直观的简单排序算法。 实现原理:通过构建有序数组元素的存储,对于未排序的数组元素,在已排序的数组中从最后一个元素向第一个元素遍历,找到相应位置并插入。其中,待排序数组的第1个元素会被看作是一个有序的数组,从第2个至最后一个元素会被看作是一个无序数组
6.常见数组方法
1.栈和队列方法
push()将一个或多个元素添加到数组的末尾,并返回数组的新长度。unshift()将一个或多个元素添加到数组的开头,并返回数组的新长度。pop()从数组的末尾移出并返回一个元素,若是空数组则返回undefined。shift()从数组的开头移出并返回一个元素,若是空数组则返回undefined。push()和unshift()方法的返回值是新数组的长度。pop()和shift()方法返回的是移出的数组元素。
2.检索方法
includes()用于确定数组中是否含有某个元素,含有返回true,否则返回false。Array.isArray()用于确定传递的值是否是一个Array,是返回true,不是返回false。indexOf()返回在数组中可以找到给定值的第一个索引,如果不存在,则返回-1lastIndexOf()返回指定元素在数组中的最后一个的索引,如果不存在则返回-1
var data = ['peach', 'pear', 26, '26', 'grape'];// 从数组下标为3的位置开始检索数字26console.log(data.includes(26, 3)); // 输出结果:false// 从数组下标为data.length- 3 的位置查找数字26console.log(data.includes(26, -3)); // 输出结果:true// 判断变量data是否为数组console.log(Array.isArray(data)); // 输出结果:true
3.数组转字符串
join()将数组的所有元素连接到一个字符串中。toString()返回一个字符串,表示指定的数组及其元素。var arr= ['a','b','c'];console.log(arr.join()); // 输出结果:a,b,c
console.log(arr.join(' -')); // 输出结果:a-b-c
console.log(arr.toString());// 输出结果:a,b,c
join()和toString()方法的相同点:可将多维数组转为字符串,默认情况下使用逗号连接。当数组元素为undefined、null或空数组时,对应的元素会被转换为空字符串
join()和toString()方法的不同点:join()方法可以指定连接数组元素的符号。
4.其他方法
sort()对数组的元素进行排序,并返回数组。fill()用一个固定值填充数组中指定下标范围内的全部元素reverse()颠倒数组中元素的位置。splice()对一个数组在指定下标范围内删除或添加元素slice()从一个数组的指定下标范围内拷贝数组元素到一个新数组中。concat()返回一个合并两个或多个数组后的新数组
slice()和concat()方法在执行后返回一个新的数组,不会对原数组产生影响,剩余的方法在执行后皆会原数组产生影响。splice()方法的第1个参数的值等于或大于数组长度时,从数组末尾开始操作;当该值为负数时,则下标位置等于数组长度加上指定的负数,若其值仍为负数,则从数组的开头开始操作。