1、定义数组
空数组
1、数组字面量:[ ]
var 变量名 = [ ];//定义一个空的数组把数组保存到变量中
2、新的数组对象
var 变量名 = new Array();//定义一个新的数组对象并保存到变量中
下标(数组中每个数据的编号)
原理:数组中第一个数据下标为0,依次递增。
2、数组的基本使用
a、通过下标获取数组中的指定一个数据
数组变量名[下标]; e.g: document.write(num[2]);
b、获取数组长度:nums.length
3、数组中常用的函数
api:(常用api:push、pop、slice、splice、unshift、concat、join、reverse、indexOf、lastlndexOf)
1、用户编程接口,开发人员能够直接使用的代码。一个api能够实现一个功能。比如parselnt()就是一个api,功能是进行取整。
2、每个api都是一个功能
3、api是程序内置的,开发人员直接使用,无需知道内部如何实现
push:数组末尾添加数据(可以同时添加多个)
arr.push(数据1,数据2,,,); var arr =[1,2,3,4,5]; arr.push(6); arr.push(7,8,9); document.write(arr);//[1,2,3,4,5,6,7,8,9];
pop:删除数组末尾最后一个数据
数组名.pop(); var arr =[1,2,3,4,5]; arr.pop(); document.write(arr);//[1,2,3,4];
unshift:数组开头添加一个或多个数据
数组名.unshift(); var arr =[1,2,3,4,5]; arr.unshift(0);//开头添加0 document.write(arr);//[0,1,2,3,4];
splice:数组指定位置进行插入或删除数据
如果只有一个参数,那么会从开始下标开始,删除数组后续所有元素
数组名.splice(插入或删除的开始下标,要删除的数量,要插入的数据1,要插入的数据2,要插入的数据3...); e.g: var arr =[1,2,3,4,5]; //只删除3,4 arr.splice(2,2); document.write(arr);//[1,2,5]; //删除2,5 arr.spice(1,1); arr.spice(3,1); document.write(arr);//[1,3,4]; //在3之前插入6,7 arr.spice(2,0,6,7); document.write(arr);//[1,2,6.7.3,4,5]; //删除4,5,追加6,7 arr.spice(3,2,6,7); document.write(arr);//[1,2,3,6,7];
join:能够将数组里的数据转为字符串
1、默分隔符号是,。即数据之间以逗号隔开
2、生成的字符串需要定义一个变量来接收
数组名.join(数据的分隔符号); var arr =[1,2,3,4,5]; var str= arr.join("-");//arr.join(),默认是, document.write(arr);//0-1-2-3-4;
reserve:数据倒序存放
1、直接对原数组操作
数组名.reserve(); var arr =[1,2,3,4,5]; arr.reserve(); document.write(arr);//[5,4,3,2,1];
concat:合并数组
获取的是一个新数组,所以需要给一个变量,方便调用
数组名.concat(数组1,数组2...); var arr =[1,2,3,4,5]; var arr1 =[6,7,8,9]; var arr3=arr.concat(arr1); document.write(arr3);//[1,2,3,4,5,6,7,8,9]
slice:根据下标获取数组部分数据
1、取的是一个新数组,所以需要给一个变量,方便调用
新数组是不包含结束下标对应数据
数组名.slice(子数组开始下标,子数组结束下标); var arr =[1,2,3,4,5]; //获取2,3,4 var newarr=arr.slice(1,4); document.write(newarr);//[2,3,4];
indexOf:获取某数据在数组中第一次出现的下标,没有的话返回-1
var index = 数组名.slice(数据); var arr =[1,2,3,4,5]; var index =arr.indexOf(3);//2 var index =arr.indexOf(6);//-1
lastlndexOf:获取某数据在数组中最后一次出现的下标,没有的话返回-1
var index = 数组名.lastIndexOf(数据); var arr =[1,2,3,4,5,2]; var index =arr.lastIndexOf(3);//2 var index =arr.lastIndexOf(2);//5
- 排序
- 第一种排序-不添加参数:按照自然顺序来处理。自然顺序是按照0-9,a-z来进行排序
- 第二种需要我们提供一个排序函数,该函数就决定了数组里面的两个相邻数据如何进行排序
自定义排序: ,数组变量名.sort(排序函数); 例子: 自然排序 var arr1 =[1,2,3,'c',7,4,'b',9];//默认排序 arr1.sort(); document.write(arr1); 自定义排序 var arr2 = [123,432,111,65,4,234,996,332]; arr2.sort(function(num1,num2) { return num2 -num1; }) document.sort();//996,432,332,234,123,111,65,4 随机打乱顺序 arr1.sort(function(num1,num2){return Math.random()-0.5})//结果随机
- 指的是一个数组中的每一个数据都是一维数组
- 一维数组是一个数组中的数据都是具体的数据,比如[1,2,3]
作用:
1、主要是描述多个复合数的集合
定义:
var arr =[]; arr.push([1,2,3]);
二维数组本身就是一个普通的数组,只不过数组里面的是数组,就称为二维数组
获取数据
数组变量名[下标] arr[0]; arr[0][0];
添加数据
arr.push(); arr[arr.length]=新数据; eg: student.push(['詹姆斯',35,'男',80]);
删除数据
arr.length--;
修改数据
arr[0]=新数据; eg: //把arr[0]修改 arr[0] = ['战鼓',45,'男',56]; //把具体的修改 arr[1][0]='张三';
长度
数组变量.length; arr.legnth;//二维数组长度 arr[0]length;//二维数组第一个长度
遍历:用双重for循环显示。