详解es6新增数组方法简便了哪些操作
什么是es6?
在这里不过多阐述,我也是跟着阮一峰大佬的《es6入门》来学习的,es6新增了很多的方法、属性,让我们在编码中得到了很高的提升,在这里只对array这块进行阐述,其他的就过不多介绍了。
言归正传,在项目中,经常会遇到处理数据,筛选数据的要求,我们更多的会借助于for循环来完成,比如:数组去重,传统方法如下(以下所有实例只列举一种)
leta=[1,2,2,3,3,4,5]; letb=[a[0]]; for(leti=0;i上面的是es6之前的处理方法,可以解决问题,但代码量可着实不少啊!在es6中,只需要一行代码就可以搞定!
Array.from&& newSet()
leta=[1,2,2,3,3,4,5]; letb=Array.from(newSet(a)) console.log(b)//[1,2,3,4,5]是不是及其简单!其中newSet()会把重复的数据过滤到,得到一个类数组的对象,Array.from()可以把类数组的对象转换为真正的数组对象,有兴趣的同学可以对这两个属性进行更加深入的了解。
数组过滤
在我们拿到后端数据的时候,可能会对数据进行一些筛选、过滤,传统的做法如下
//取出数组中name为kele的数组集合 leta=[ { name:'kele', title:'可口可乐' }, { name:'kele', title:'芬达' }, { name:'wlg', title:'王老吉' } ] letb=[]; for(leti=0;ies6中的处理方法如下
Array.filter(callback)
leta=[ { name:'kele', title:'可口可乐' }, { name:'kele', title:'芬达' }, { name:'wlg', title:'王老吉' } ] letb=a.filter(item=>item.name==='kele'); console.log(b)//[{name:'kele',title:'可口可乐'},{name:'kele',title:'芬达'}]同样的,Array.filter()让我们摆脱了for循环,代码看起来更加的清爽!
Array.every(callback)
这个方法主要是判断数组中所有的元素都符合条件时,返回true
leta=[1,2,3,4,5]; letb=a.every(item=>item>2); console.log(b)//falseArray.some(callback)
这个方法和上一个略有区别,这个方法主要判断数组中有一个元素符合条件,就返回true
leta=[1,2,3,4,5]; letb=a.some(item=>item>2); console.log(b)//trueArray.find(callback)
这个方法是返回数组中符合条件的第一个元素,否则就返回undefined
leta=[1,2,3,4,5]; letb=a.find(item=>item>2); console.log(b)//3Array.findIndex(callback)
这个方法是返回数组中符合条件的第一个元素的索引值,否则就返回-1
leta=[1,2,3,4,5]; letb=a.findIndex(item=>item>2); console.log(b)//2符合条件的为元素3它的索引为2Array.includes(item,finIndex)
这个方法是判断数组中是否包含有指定的值,包含就返回true,否则就是false,它接受两个参数,第一个为搜索的值(必填),第二个为搜索开始的位置(选填,默认从0开始)
leta=[1,2,3,4,5]; letb=a.includes(2); console.log(b)//trueArray.map(callback)
这个方法是返回一个根据你callback函数中的条件,返回一个全新的数组
leta=[1,2,3,4,5]; letb=a.map(item=>item*2); console.log(b)//[2,4,6,8,10]Array.reduce(callback)
这个方法是根据callback中的条件对数组中的每个元素都进行类加的操作,返回一个全新的值,下面做两个不同的例子,便于理解
/**第一种**/ leta=[1,2,3]; letb=a.reduce((i,j)=>{ returni+j; },0); console.log(b)//b /**第二种**/ leta=[1,2,3]; letb=a.reduce((i,j)=>{ i.push(j) returni },[0]) console.log(b)//[0,1,2,3]...扩展运算符
这个可以很方便的帮我们实现合并两个数组
leta=[1,2,3]; letb=[4,5,6]; letc=[...a,...b]; console.log(c)//[1,2,3,4,5,6];小结:基本上新增的一些方法用到的就是这些,一些老的方法例如push、shift、sort等等就不一一列举了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。