es6 filter() 数组过滤方法总结
Array.every(x=>x)是每一个都要满足
Array.some(x=>x)是有一个满足。
Array.find(findIndex),返回符合条件的第一个值。
Array.filter(过滤成新的数组)
数组的方法分为两类
1)改变原数组
push,pop,shift,unshift,sort,reverse,splice
2)不改变原数组concat,join-->
split,toStringpush:从数组最后一位开始加数据
pop:把数组最后一位剪切
shift:在数组最前一位剪切
unshift:在数组最前一位加数
reverse:把原数组逆转
splice:arr.splice(从第几位开始,截取多少长度,在切口处添加新数据)
concat:连接join:返回字符串
slice:截取arr.slice(从该为开始截取,截取到该为)
示例
1.创建一个数组,判断数组中是否存在某个值
varnewarr=[ {num:1,val:'ceshi',flag:'aa'}, {num:2,val:'ceshi2',flag:'aa2'} ] console.log(newarr.filter(item=>item.num===2))
2.也可以通过上面方法过滤掉num为2的留下num为1的
varnewarr=[ {num:1,val:'ceshi',flag:'aa'}, {num:2,val:'ceshi2',flag:'aa2'} ] console.log(newarr.filter(item=>item.num!=2))
3.去掉空数组空字符串、undefined、null
vararr=['1','2',undefined,'3.jpg',undefined] varnewArr=arr.filter(item=>item) console.log(newArr) vararr=['1','2',null,'3.jpg',null] varnewArr=arr.filter(item=>item) console.log(newArr) >//空字符串里面不能包含空格 vararr=['1','2','','3.jpg',''] varnewArr=arr.filter(item=>item) console.log(newArr)
4.去掉数组中不符合项
vararr=[20,30,50,96,50] varnewArr=arr.filter(item=>item>40) console.log(newArr)
5.过滤不符合项
vararr=['10','12','23','44','42'] varnewArr=arr.filter(item=>item.indexOf('2')<0) console.log(newArr)
6.数组去重
vararr=[1,2,2,3,4,5,5,6,7,7,8,8,0,8,6,3,4,56,2]; vararr2=arr.filter((x,index,self)=>self.indexOf(x)===index) console.log(arr2);//[1,2,3,4,5,6,7,8,0,56]
7
/* 有一个对象数组a,将a数中对象某个属性的值存储到B数组中 */ varporducts=[ {name:"cucumber",type:"vegetable"}, {name:"banana",type:"fruit"}, {name:"celery",type:"vegetable"}, {name:"orange",type:"fruit"}, ]; //es5 varfilteredProducts=[]; for(vari=0;i8
/* 需求二 有一个对象数组A,过滤掉不满足以下条件对象 条件:蔬菜数量大于0价格小于10 */ varproducts=[ {name:"cucumber",type:"vegetable",quantity:0,price:1}, {name:"banana",type:"fruit",quantity:10,price:16}, {name:"celery",type:"vegetable",quantity:30,price:8}, {name:"orange",type:"fruit",quantity:3,price:6}, ]; products=products.filter(function(product){ returnproduct.type==="vegetable" &&product.quantity>0 &&product.price<10 }) console.log(products)//0:{name:"celery",type:"vegetable",quantity:30,price:8}name:"celery"price:8quantity:30type:"vegetable"__proto__:Objectlength:1__proto__:Array(0)9
/* 需求三: 有两个数组A,B,根据A中的ID值,过滤掉B数组不符合的数据 */ varpost={id:4,title:"javascript"}; varcomments=[ {postId:4,content:'Angular4'}, {postId:2,content:'VUE.js'}, {postId:3,content:'Node.js'}, {postId:4,content:'React.js'}, ]; functioncommentsForPost(post,comments){ returncomments.filter(function(comment){ returncomment.postId===post.id; }) } console.log(commentsForPost(post,comments)) //0:{postId:4,content:"Angular4"}1:{postId:4,content:"React.js"}length:2__proto__:Array(0)以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。