在es6里面Array新增了一些方法使的对数据的操作更加便捷。
1,forEach
forEach类似于普通的for循环
let arr=[1,3,5,false,true]; arr.forEach((val,index,arrs)=>{ console.log(val,index,arrs); });
2,map
主要作用做数据映射
没有return
let arr=[{name:'zhang',age:21},{name:'li',age:25},{name:'wang',age:45}]; var narr=arr.map((val,index,arrs)=>{ console.log(val,index,arrs); }); console.log(narr);//[undefined, undefined, undefined]
有return
let arr=[{name:'zhang',age:21},{name:'li',age:25},{name:'wang',age:45}]; let narr=arr.map((val,index,arrs)=>{ var obj={}; obj.n=val.name; obj.a=val.age; return obj }); console.log(narr);//[{"n":"zhang","a":21},{"n":"li","a":25},{"n":"wang","a":45}]
通过对比可以发现map时若没有返回值和forEach相当,加上返回值可以返回新的数组。
3,filter
筛选符合条件的数据
let arr=[{name:'zhang',age:21},{name:'li',age:25},{name:'wang',age:45}]; let narr=arr.filter((val,index,arrs)=>{ return val.age>23 }); console.log(narr);//[{"name":"li","age":25},{"name":"wang","age":45}]
注意:需要和return一起使用
4,some
有数据符合条件
let arr=[{name:'zhang',age:21},{name:'li',age:25},{name:'wang',age:45}]; let flag=arr.some((val,index,arrs)=>{ return val.name=='zhang' }); console.log(flag);//true
所有数据都不符合条件
let arr=[{name:'zhang',age:21},{name:'li',age:25},{name:'wang',age:45}]; let flag=arr.some((val,index,arrs)=>{ return val.name=='yu' }); console.log(flag);//false
对比发现只要有数据满足条件就返回true,否则返回false
5,every
数组中有数据不满足条件
let arr=[{name:'zhang',age:21},{name:'li',age:25},{name:'wang',age:45}]; let flag=arr.every((val,index,arrs)=>{ return val.age>22 }); console.log(flag);//false
数组中所有数据都满足条件
let arr=[{name:'zhang',age:21},{name:'li',age:25},{name:'wang',age:45}]; let flag=arr.every((val,index,arrs)=>{ return val.age>20 }); console.log(flag);//true
通过对比发现使用every时只有所有数据都满足条件才返回true,否则返回false