一、什么是数组?
数组是用来保存多条数据,和其他语言的数组不一样,js中的数组可以保存任何类型的数据;
如:var ary=[];
var ary=[1,2,3,4,5,6];
var ary=[‘a‘,‘b‘,‘c‘];
var ary=[{n:1,m:2},{n:1,m:2},{n:1,m:2}];
var ary=[function a1(){},function a2(){}];
二、如何创建数组?
1、使用Array构造函数
如:var ary=new Array();
ary[0]=1; ary[1]=2; 创建一个空数组,然后逐项赋值
var ary=new Array(10); 创建一个数组,并指定数组的长度
var ary=new Array(1,2,3,4,5); 创建一个数组,并指定数组的内容
2、使用数组字面量表示法
var ary=[];
var ary=[1,2,3,4,5,6];
var ary=[‘a‘,‘b‘,‘c‘]
var ary=[{n:1,m:2},{n:1,m:2},{n:1,m:2}];
var ary=[function a1(){},function a2(){}];
三、数组的基本属性
长度:ary.length
数值:ary[i] 数组的索引是从0开始的
四、数组一共有12种方法:
1、contact
2、push
3、pop
4、unshift
5、shift
6、slice
7、splice
8、join
9、sort
10、reverse
11、toString
12、indexof
五、数组的这些方法的特点:
1、concat(); 克隆数组、数组连接
参数:参数个数不固定、参数类型不固定;不传参数时为克隆新数组
结果:返回新数组
原数组是否改变:不改变
2、slice(n,m); 基于当前数组获取制定区域元素,并创建一个新数组
参数:两个参数、数字类型,代表从索引为n处开始,取到索引为m(不包括m);
结果:返回取出来的新数组
原有数组是否改变:不改变
3、splice(m,n); splice(m,m,x); 对数组进行插入,替换,删除操作
【删除】
参数:两个参数、数字类型;splice(m,n); 代表从索引n开始,移除m个元素
结果:返回移除的元素数组
原有数组是否改变:改变
【替换】
参数:三个参数、前两个数字类型,第三个不确定。splice(m,n,x);代表从索引n开始,移除m个元素,并将新增加的x元素添加到这个位置。
结果:返回移除的数组元素
原数组是否改变:改变
【插入】
参数:三个参数,前两个是数字类型,中间为0,第三个不确定。splice(m,0,x); 代表从索引m开始,移除0个元素,将新增加的x元素添加到这个位置。
结果:返回空数组(没有移除任何元素)
原数组是否改变:改变
4、push(); 在指定的数组末尾添加一个元素
参数:个数不定,数据类型不定,参数为新添加的元素
结果:最后添加的元素
原数组是否改变:改变
5、pop(); 删除指定数组最后一个元素
参数:无
结果:返回移除的元素
原数组是否改变:改变
6、unshift(); 在指定数组前面添加元素
参数:个数不定,数据类型不定,参数为新添加的元素
结果:返回新增加后数组里面元素的个数(新数组的长度)
原数组是否改变:改变
7、shift(); 删除数组第一个元素
参数:无
结果:返回移除的元素
原数组是否改变:改变
8、join();给数组添加分隔符
参数:一个参数,字符串类型
结果:返回用分隔符串起来的字符串
原数组是否改变:不改变
9、sort();对数组进行从小到大排列顺序(只对十以内的数字有效)
对所有数字排列:ary.sort(function(ni,n2){
return n1-n2;
});
参数:无
结果:返回排序后的新数组
原数组是否改变:改变
10、reverse();对数组进行倒序排列
参数:无
结果:返回排序后的新数组
原数组是否改变:改变
11、toString(); 转化为字符串
参数:无
结果:返回转化后的字符串数据
原数组是否改变:不改变
12、indexOf(); 用来检测某元素是否存在于数组中,存在返回此元素的索引,不存在返回-1;
参数:要检测的元素;参数不定,数据类型不定
此方法存在兼容性