javascript数组

*红色为可选参数
 
一.新建一个数组
var arr=new Array();
var arr=[1,2,3.4];
delete arr[1];//返回[,2,3,4]
 
二.数组的添加和删除
delete():删除数组,数组长度不会变,会产生稀疏数组
push():从数组后添加一位元素,数组长度增加一位
pop():从数组后删除一位元素,数组长度会减少一位
 
三.数组的遍历
var a=[1,2,6,8,9]
 
for(var i in a){}//i为index
 
for(var i=0;i<a.length;i++){}
 
四.数组方法
1.join():将数组连成一个字符串
var a=[2,3,5,6,9]
a.join(',')//返回2,3,5,6,9
 
2.reverse():数组翻转
var a=[2,3,5,6,9];
a.reverse();//返回[9,6,5,3,2]
 
3.sort():排序,按字母顺序排序
4.concat():合并数组只能合并一级数组,不能递归扁平化数组
var a=[2,3,[5,6],[7,[8,9]] ]
a.concat();//返回[2,3,5,6,7,[8,9]];
 
5.slice(index,count):切片方法  不会改变原数组
var a=[1,2,3,4,5]
a.slice(3)//返回[4,5] 从索引3开始切直到末尾,原数组不受影响
a.slice(0,2)//返回 [1,2]  从索引0开始切,切2个,原数组不受影响
 
6.splice(index,count):切片删除方法,会改变原数组    
var a=[1,2,3,4,5,6,7,8,9];
a.splice(4)//返回[5,6,7,8,9]; a=[1,2,3,4]
a.splice(0,2);//返回[1,2];a=[3,4];
 
7.push():从后面添加元素,数组长度会增加
8.pop():从后面删除元素,数组长度会减少
9.unshift():从数组前面添加一个元素,数组长度会增加一位,每个元素的索引会向后挪一位.返回当前数组长度
var a=[1];
a.unshift(22);//返回 2      a=[22,1];
 
10.shift():从数组前面删除一个元素,数组长度会减少一位,每个元素的索引会向前挪一位,返回当前删除的元素
var a=[a,2,3,4];
a.shift();//返回a,  a=[2,3,4];
 
EMCA5 方法
1.forEach()    
var a=[1,2,3,4,5];
a.forEach(function(v){ return v*2;  })//返回[2,4,6,8,10];
a.forEach(function(v,i,a){a[i]=v*2  })//返回[2,4,6,8,10];
 
2.reduce(): 化简函数
3.reduceRight():
var a=[2,3,4,5,6,7,8];
a.reduce(function(x,y){return x+y},0);//求和 第一次时x=0,y是第一个元素,第二次x就是前一次计算累计的结果,y是当前元素,最后返回计算的结果
a.reduce(function(x,y){return x*y},1);//求积 同上
a.reduce(function(x,y){return x>y? x:y},0);//求最大值 同上
var b=[{x:1,a:2},{y:1,z:2},{z:3,a:3}];
b.reduce(union)//返回[x:1,a:2,y:1,z:2];
b.reduceRight(union)//返回[a:3,z:3,y:1,x:1]
 
4.indexOf(target,index);从左往右进行检索,存在返回目标元素索引,不存在返回-1
target:目标元素
index:从哪个索引开始
 
5.lastIndexOf(target,index);从右往左进行检索,index可以为负数,为负数时表示,从后往前检索
target:目标元素
index:从哪个索引开始
 
6.filter():过滤,返回一个新数组
var a=[1,6,5,9,8,a,b,c]
a.filter(function(x){ return !isNaN(x)  })//返回 [1,6,9,8]; 判断为true的元素才被保留
 
7.map():遍历,可以返回一个新数组
var a=[3,5,6,9,8];
a.map(function(x){return x*x;})//返回[9,25,36,81,64];
 
8.every():判定全部,默认为true,全部为true,返回true
var a=[1,2,3,4,5,6,7,8,9];
a.every(function(x){if(x%2!=0) return false;})// 只要有个返回false 全都为false
 
9.some():判定存在,默认为false,只要存在有一个为true,返回true
var a=[1,2,3,4,5,6,7,8] 
a.some(function(x){ return x>6})//只有有一个大于6,则返回true
 
10toString() 方法
var a=[1,2,3,4,5,6] 
a.toString();//返回1,2,3,4,5,6;
原文地址:https://www.cnblogs.com/CrazyShun/p/5417181.html