js去重的几种方法

复制代码
let arr =[1,1,2,3];

(按执行时间排序)

1. newArr = new Set(arr);

2.newArr = Array.from(new Set(arr));

3.var newArr = [];

  for (var i = 0; i < arr.length; i++) {
     if (!map.has(arr[i])) { //查找是否含有key
         map.set(arr[i], true) //添加key和value
         console.log(map)
         newArr.push(arr[i]); 
    }     
 }   
4.    var  arr2 = []
for (j = 0; j< arr.length; j++) {
  if(!newArr.includes(arr[j])){
   newArr.push(arr[j])
  }
}
5.双层循环去重;
6.利用indexOf
for (j = 0; j< arr.length; j++) {
  if(newArr.indexOf(arr[j])==-1){
   newArr.push(arr[j])
  }
}
7. newArr=arr.filter((item,index)=>{
    return arr.indexOf(item)===index  //数组包含item的值则返回对应的下标
})

空间复杂度最低:
var removeDuplicates = function(nums) {
    let i = 0;
    while(i<nums.length-1){
        if(nums[i] === nums[i+1]){
            nums.splice(i,1);
        }else{
            i++
        }
    }
};
复制代码
posted @   妄欢  阅读(2671)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示