javascript数组去重的几种常见方法,js 数组去重的四种方法

  javascript数组去重的几种常见方法,js 数组去重的四种方法

  本教程运行环境:windows7系统,javascript1.8.5版本1.8.5,戴尔G3电脑。

  方法1:[…new Set(arr)]

  const arr=[1,2,3,2,3];

  [.新集(arr)];//[1, 2, 3]方法2:Array.from(new Set(arr))

  const arr=[1,2,3,2,3];

  array . from(new Set(arr));//[1,2,3]由于集合中的元素是唯一的,无论它们是原始值还是对象引用,重复数据删除都可以通过将数组转换为集合对象来实现。

  Array.from方法可以将Set对象转换为数组。

  方法3:利用filter+ indexOf

  唯一函数(arr) {

  return arr.filter(function(item,index,arr) {

  //当前元素,原数组中第一个索引==当前索引值,否则返回当前元素。

  return arr.indexOf(item,0)===index;

  });

  }

  var arr=[1,1,真,真,真,真,15,15,假,假,未定义,未定义,null,null,NaN,NaN, NaN ,0,0, a ,{},{ }];

  console.log(唯一(arr))

  //[1,真,真,15,假,未定义,空,南,0, a ,{…},{…}]方法4:双重 for 循环

  最简单的理解,外循环遍历元素,内循环检查是否重复。

  当有重复值时,可以使用push()或splice()。

  函数distinct(a,b) {

  设arr=a . concat(b);

  for(设i=0,len=arr.lengthileni ) {

  for(设j=I ^ 1;jlenj ) {

  if (arr[i]==arr[j]) {

  arr.splice(j,1);

  //splice会改变数组长度,所以把数组长度len和下标j减一。

  len-;

  j-;

  }

  }

  }

  返回arr

  }但这种方式占用内存多,效率最低。

  方法5:for...of + includes()

  双for循环的升级版,外层用for代替for循环.语句,内循环改为includes()

  首先创建一个空数组,当includes()返回false时,将元素推入空数组。

  同样,也可以使用indexOf()代替includes()

  函数distinct(a,b) {

  设arr=a.concat(b)

  假设结果=[]

  对于(让我逮捕){

  !结果包含(I)结果推送(I)

  }

  回送结果

  }

  【推荐学习:javascript高级教程】以上是如何做javascript数组去重的详细内容。更多请关注我们的其他相关文章!

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

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