JavaScript数组去重的六种实现方案解析

作者:木棉

时间:2026-10-24

浏览:371

本文详细解析JavaScript中数组去重的六种常见实现方式,包括利用Set数据结构、双重循环、indexOf、includes、filter以及Map对象。通过具体代码示例对比各方法的逻辑差异与适用场景,帮助开发者根据实际需求选择最优方案。

文章目录

一、Set去重


 function funSet(arr){
   return Array.from(new Set(arr));
 }

二、双重for循环去重


function funFor(arr){
  for(let i=0,len=arr.length;i<len;i++){
    for(let j=i+1,len=arr.length;j<len;j++){
      if(arr[i]===arr[j]){
        arr.splice(j,1);
        len--;
        j--;
      }
    }
  }
  return arr;
}

三、利用indexOf去重


function funIndex(arr){
  let newArr=[];
  for(let i=0;i<arr.length;i++){
    if(newArr.indexOf(arr[i])===-1){
      newArr.push(arr[i])
    }
  }
  return newArr;
}

四、利用includes去重


function funInclude(arr){
  let newArr=[];
  for(let i=0;i<arr.length;i++){
    if(!newArr.includes(arr[i])){
      newArr.push(arr[i])
    }
  }
  return newArr;
}

五、filter


function funFilter(arr){
  return arr.filter(function(item,index){
    return arr.indexOf(item,0)===index;
  })
}

六、Map


function funMap(arr){
  let map=new Map();
  let newArr=[];
  for(let i=0,len=arr.length;i<len;i++){
    if(map.has(arr[i])){
      map.set(arr[i],true);
    }else{
      map.set(arr[i],false);
      newArr.push(arr[i]);
    }
  }
  return newArr;
}

总结

本文到此结束,希望这些内容能为您提供帮助,同时也欢迎您关注本站以获取更多技术资讯!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章