首页 > 语言 > JavaScript > 正文

详解es6新增数组方法简便了哪些操作

2024-05-06 15:39:42
字体:
来源:转载
供稿:网友

什么是es6?

在这里不过多阐述,我也是跟着阮一峰大佬的《es6入门 》来学习的,es6新增了很多的方法、属性,让我们在编码中得到了很高的提升,在这里只对array这块进行阐述,其他的就过不多介绍了。

言归正传,在项目中,经常会遇到处理数据,筛选数据的要求,我们更多的会借助于for循环来完成,比如:数组去重,传统方法如下(以下所有实例只列举一种)

let a = [1,2,2,3,3,4,5];let b = [a[0]];for(let i = 0; i < a.length; i++){  let flag = false;  for(let j = 0; j < b.length; j++){    if( a[i] === b[j] ){      flag = true;      break;    }  }  if( !flag ){    b.push(a[i])  }}console.log(b) // [1,2,3,4,5]

上面的是es6之前的处理方法,可以解决问题,但代码量可着实不少啊!在es6中,只需要一行代码就可以搞定!

Array.from &&  newSet()

let a = [1,2,2,3,3,4,5];let b = Array.from(new Set(a))console.log(b) // [1,2,3,4,5]

是不是及其简单!其中 new Set()会把重复的数据过滤到,得到一个类数组的对象,Array.from()可以把类数组的对象转换为真正的数组对象,有兴趣的同学可以对这两个属性进行更加深入的了解。

数组过滤

在我们拿到后端数据的时候,可能会对数据进行一些筛选、过滤,传统的做法如下

// 取出数组中name为kele的数组集合let a = [  {    name: 'kele',    title: '可口可乐'  },  {    name: 'kele',    title: '芬达'  },  {    name: 'wlg',    title: '王老吉'  }]let b = [];for(let i = 0; i < a.length; i++){  if( a[i].name === 'kele' ){    b.push(a[i])  }}console.log(b) //[{name: 'kele', title: '可口可乐'},{name: 'kele', title: '芬达'}]

es6中的处理方法如下

Array.filter(callback)

let a = [  {    name: 'kele',    title: '可口可乐'  },  {    name: 'kele',    title: '芬达'  },  {    name: 'wlg',    title: '王老吉'  }]let b = a.filter(item => item.name === 'kele');console.log(b) //[{name: 'kele', title: '可口可乐'},{name: 'kele', title: '芬达'}]

同样的,Array.filter()让我们摆脱了for循环,代码看起来更加的清爽!

Array.every(callback)

这个方法主要是判断数组中所有的元素都符合条件时,返回true

let a = [1,2,3,4,5];let b = a.every(item => item > 2);console.log(b) // false

Array.some(callback)

这个方法和上一个略有区别,这个方法主要判断数组中有一个元素符合条件,就返回true

let a = [1,2,3,4,5];let b = a.some(item => item > 2);console.log(b) // true

Array.find(callback)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选