数组作为js中比较常用的一个容器,简单记录一些常用的方法,作为查询工具使用;
1 声明
var array1=new Array();//比较标准的方式
var array2=[];//也可以随意一些
var array3=[1,2,3,4];//直接初始化
2 添加移除元素;array.push(item...);array.pop();
var array1=[];
array1[0]=1;//直接赋值,且不用担心下标越界的问题
array1.push(2);//直接在后面追加
array1.push(3);// array1[1,2,3]
array1.pop();//末尾删除 类似堆栈(stack) array1[1,2]
array1.push(3,4);//也可以同时多个 array1[1,2,3,4]
array1.push([5,6,7,],8);//不限制类型 array1[1,2,3,4,[5,6,7],8]
3 遍历
var array1=[10,20,30,40];
//循环前一般需要做下判断
if(array1&&array1.length){
//TO-DO
}else{
//数组不存在或者 为空的情况
}
array1.forEach(function(item,index){//forEach;比较少用
console.log('forE:'+item);
});
array1.forEach((i,index)=>{//forEach + Lambda表达式
console.log("forEach:"+i);
});
for(var a in array1){// 不考虑顺序可以用;比较少用
console.log('a:'+array1[a]);
}
for(var i=0;i<array1.length;i++){//普通for循环 排序时使用;一般的用法
console.log('for:'+array1[i]);
}
for(var i=0,j=0;j=array1.length,i<j;i++){//数组比较大时的一点儿优化
console.log('forj:'+array1[i]);
}
4 复制,检索,移除array.slice(start,end);array.splice(start,deleteCount,item...);array.indexOf();
//slice方法针对array中的一段做浅复制
//第一个参数是起始位置,第二个可选,默认是数组的长度
//一般来说 截取后的值a + 截取后的数组值就是 截取前完整的数组的值
var array2=['a','b','c','d'];
var a=array2.splice(0,1);//a-['a'];array2-['b','c','d']
var b=array2.splice(1);//b-['c','d'];array2-['b']
//splice方法从array中移除一个或多个元素,并用新的元素替换他们
var array3=[111,222,333,444];
var b=array3.splice(2,1,555,666);//b-[333],array3-[111,222,555,666,444]
//indexOf 判断数组是否包含某个元素,一般可以配合 splice方法删除元素
//当然返回的结果是第一个匹配成功的,若需要全部删除还需要另外考虑
var array4=[111,222,333];
var index = array4.indexOf(222);//index==1
if(index > -1) {
array4.splice(index, 1);//array4-[111,333]
}
5 反转,排序 array.reverse();array.sort();目前暂时没有使用到