1. 概念:所谓数组,是有序的元素数列,即一组有序数据。
2. 创建方式:
1. var arr = a[1,2];//字面量声明方式,此时数组中有1,2共两个元素,且arr[0]=1,arr[1]=2,由此可见若设定一个变量i,arr[i]即可遍历数组,i称为下标或索引,从0开始至arr.length-1结束(arr.length为数组长度)
2. var arr = new Array();构造函数方式创建数组,与上面创建方式用法相同,但不同的参数会导致行为不一致,因此最好使用字面量方式创建
3. 相关操作
1 push() // 向数组末尾添加元素,原数组发生改变,并且返回值为改变后数组的长度。若push()内无参数返回原数组长度和原数组的元素
eg:var arr = [1,2,3,4,5];
var arr1=arr.push(1);
document.write(arr1+"
"+arr);
//结果为 6
1,2,3,4,5,1
(6即为添加1后数组的长度为6,后面即为添加后的新数组)//原数组操作后发生改变
2 pop()//删除数组最末一个元素,无论pop()内是否有参数,并返回被删除元素
eg:var arr = [1,2,3,4,5];
var arr1=arr.pop();
document.write(arr1+"
"+arr);
//结果为 5
1,2,3,4
(5处于最末,即被删掉的元素,1,2,3,4为删除过后的数组)//原数组操作后发生改变
3 unshift()//用法与push()相似,只是将元素添加在了头部,返回操作后数组长度,原数组发生改变
eg:var arr = [1,2,3,4,5];
var arr1=arr.unshift(1);
document.write(arr1+"
"+arr);
//结果为 6
1,1,2,3,4,5
4 shift()//用法与pop()相似,只是是在头部删除一个元素,返回被删除元素,原数组发生改变
eg:var arr = [1,2,3,4,5];
var arr1=arr.shift();
document.write(arr1+"
"+arr);
//结果为 1
2,3,4,5
5 slice()//截取数组片段,一个参数即从参数对应索引开始截至末尾,并返回被截取片段
两个参数(至多两个参数),从第一个参数对应索引为开始截取至第二个参数对应索引位结束(不包括第二个参数对应索引位),并返回此片段
无参,返回原数组
slice()操作过后,原数组不发生改变
eg:var arr = [1,2,3,4,5];
var arr1=arr.slice(2);
document.write(arr1+"
"+arr);
//结果为 3,4,5
1,2,3,4,5
eg:var arr = [1,2,3,4,5];
var arr1=arr.slice(2,3);
document.write(arr1+"
"+arr);
//结果为 3
1,2,3,4,5
6 splice()//一个参数时,从参数对应索引开始截取至数组末尾,返回被截取片段,原数组发生改变
两个参数时,从第一个参数对应索引位开始截取至第二个参数的长度,即第二位参数表示被截取的长度,原数组发生改变
三或以上参数,前两位与上相同,后面的插入到截取的地方
eg:var arr = [1,2,3,4,5];
var arr1=arr.splice(2);
document.write(arr1+"
"+arr);
//结果为 3,4,5
1,2
eg:var arr = [1,2,3,4,5];
var arr1=arr.splice(2,3);
document.write(arr1+"
"+arr);
//结果为 3,4,5
1,2
eg:var arr = [1,2,3,4,5];
var arr1=arr.splice(2,3,11);
document.write(arr1+"
"+arr);
//结果为 3,4,5
1,2,11
7 reverse()//将数组内元素翻转,原数组发生改变
eg:var arr = [1,2,3,4,5];
var arr1=arr.reverse();
document.write(arr1+"
"+arr);
//结果为 5,4,3,2,1
5,4,3,2,1
8 sort()//方法对数组成员进行排序,默认是按照字典顺序排序。排序后,原数组将被改变.
sort方法不是按照大小排序,而是按照字典顺序。也就是说,数值会被先转成字符串,再按照字典顺序进行比较。
如果想让sort方法按照自定义方式排序,可以传入一个函数作为参数。
eg: var arr = [1,2,3,4,5,2];
arr.sort(function(a,b){
return a-b;
});
document.write(arr);
//输出 1,2,2,3,4,5 从小到大排列
var arr = [1,2,3,4,5,2];
arr.sort(function(a,b){
return b-a;
});
document.write(arr);
//输出 5,4,3,2,2,1 从大到小排列