码农和程序员之间的距离是一万次的深度思考与总结。
一:数组的创建
方式一:数组字面量
var BAT=['Baidu','Alibaba','Tecent'];
方式二:Array构造器
var arr=new Array();//传递参数可为数组长度或数组元素
二:数组元素的增删操作
2.1 增
1、以赋值的方式动态增加数组的长度
var arr=[];//创建一个空数组
arr[0]=1;
2、在数组末尾增加元素 push()或arr[arr.length]实现
arr.push(1);//数组末尾新增元素1
arr[arr.length]=1;
3、在数组第一个元素前增加一个元素 unshift()
2.2删
1、删除元素,不改变数组长度 delete
delete arr[2];//arr数组中索引为2的元素值变为undefined,数组长度不变。但2 in arr返回值为false.
2、删除元素并改变数组长度
删除尾部元素:arr.pop() 或 arr.length-=1;//通过改变数组长度的方式
删除第一个元素:arr.shift()
三、二维数组遍历
var i=0,j=0;
var arr=[[1,2,3],[3,4,5]];
for(;i<arr.length;i++){
for(;arr[i].length;j++){
console.log(arr[i][j]);
}
四、数组的方法
由数组对象的原型Array.prototype提供方法
一、通用方法(所有浏览器都适用)
1、join() 将数组转换成字符串。可传递参数,参数为每个元素的间隔符
2、reverse() 数组逆序,原数组被修改
3、sort()对数组元素进行排序(以字符串的形式)原数组被修改。
var arr=['a','c','b'];
arr.sort();//['a','b','c']
若arr元素为数字,直接sort排序,不会得到数字按序排列。可函数处理得
var arr1=[12,8,22,43];
arr.sort(function(x,y){
return x-y;//从小到大
});
4、concat() 数组合并,原数组未改变
var arr=[1,2];
arr.concat([4,5],6);//[1,2,4,5,6]数组拼接中包含的一维数组会被拉平
5、slice() 返回部分数组,原数组未改变
var arr=[1,2,3,4,5];
arr.slice(2,3)//[3] 范围左闭右开
6、splice()数组拼接 原数组改变
传递一个参数时,参数为起始剪切的索引。剪切掉数组索引之后的内容
传递两个参数时,第一个是剪切索引,第二个是剪切的长度
传递值大于三个时,第三个及以后为需要加入到剪切索引位置处的新增元素
二、ES5新增
1、map() 映射数组元素,原数组不变
var arr=[1,2,3];
arr.map(function(x){
return x+10;
});//[11,12,13]
arr;//[1,2,3]
2、filter() 数组过滤,原数组不变
可针对值和索引进行筛选
3、every() some() 数组判断
4、reduce() 将数组元素两两进行操作,最终返回一个值
5、indexOf()数组检索 检索元素在数组中的位置,返回索引值,若不存在返回-1
传递两个参数 检索值和检索位置值