es6数组对象去重的方法,es5数组去重的方法

  es6数组对象去重的方法,es5数组去重的方法

  本教程运行环境:windows7系统,ECMAScript版本6,Dell G3电脑。

  第一种:利用Set对象和数组的Array.from方法

  const new arr=array . from(new Set(arr));代码示例:

  打印后的结果

  简单来说,第二种方法比第一种简单。我们也简单解释一下。

  是setes6,类似于数组,但是本身没有重复值。提供的新数据结构。

  Array.from方法用于将两种对象转换成真正的数组:类数组对象和可迭代对象(包括ES6的新数据结构集和映射)。

  所以set和Array.from结合也可以达到阵列重复数据删除的效果。不过需要注意的是,主流浏览器像Chrome、Firfox、Opera、Safari,包括微软的Edge都支持,只有IE系列不支持。

  第二种:利用Set+扩展运算符 …

  第三种方法可以说比较简单。

  const newArr=[.新集(arr)];代码示例:

  打印后运行的结果

  这是使用ES6新功能实现阵列重复数据消除的三种方式。这三种方式的共同优点是代码简洁,对于undefined和NaN也能达到去重效果~ ~

  第三种: 利用Map对象和数组的filter方法

  唯一函数(arr) {

  const RES=new Map();

  return arr.filter((a)=!res.has(a) res.set(a,1))

  }代码示例:

  打印结果

  通过打印,我们发现确实达到了预期的效果。那我们简单解释一下。

  Map object是ES6提供的一种新的数据结构。has的方法是返回一个布尔值,表示当前Mp对象中是否存在某个值,set的方法是给Map对象设置key/value。

  2filter()方法创建一个新数组,新数组中的元素由指定数组中满足条件的所有元素进行检查。

  所以Map对象和filter方法的结合可以达到数组去重的效果~

  【推荐学习:javascript高级教程】以上是es6阵列中重复数据删除方法的详细内容。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: