ES6 Array新增方法forEach,map,filter,some,every

在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

发布了54 篇原创文章 · 获赞 0 · 访问量 7733

猜你喜欢

转载自blog.csdn.net/yuyongkun4519/article/details/84924463