javascript数组去重

1 篇文章 0 订阅
1 篇文章 0 订阅

小白一个,数组去重是一个很古老但是很重眼的话题了,话不多说,开始......

第一种方法---------利用indexof来检索
利用新数组indexOf老数组里面每个元素,来判断是不是已经在新数组中存在 -1表示没有。
function abc(arr){
 var newarr=new Array();
 for(var i=0;i<arr.length;i++;){
    if( newarr.indexof ( arr[i]) ==-1){
    newarr.push( arr[i] )
    }
  }
    return newarr
}
console.log(abc([1,2,2,4,9,6,7,5,2,3,5,6,5]))
第二种方法---------利用相邻元素来对比,但是还需要排序下

function ab(list){
		var list=list.sort();
		var newlist=[list[0]];
		for(var i=1;i<list.length;i++){
			if(list[i]!=newlist[newlist.length-1]){
				newlist.push(list[i])
			}
		}
		return newlist
	}
	
	console.log(ab([0,0,1,2,'abc',1,3,4,5,'e','d','g',6,4,7,9,10,12,11]))


function abc(array){
    array.sort();
    var new=[array[0]];
    for(var i = 1; i < array.length; i++){
        if( array[i] !== new[new.length-1]){
            new.push(array[i]);
        }
    }
    return new;
}
var aa = [1,2,"2",4,9,"a","a",2,3,5,6,5];
console.log(abc(aa));
第三种-----------es6

new Set()以及array.from()

let countsset=new Set(arr);             //es6 语法顺利的将数组去重,但是现在返回的是一个集合了
let countarray=Array.from(countsset);     //这是将集合转化为数组,一个转化后的新数组
第四种 -------------------es6

function ab(list){
		var newlist=[];
		var list=list;
		for(var i=0;i<list.length;i++){
			if(newlist.includes(list[i])==false){
				newlist.push(list[i])
			}
		}
		return newlist
	}
	
	console.log(ab([0,0,1,2,1,3,4,5,6,4,7,9,10,12,11]))

function unique(arr){
 var res = []; 
 for(var i=0; i<arr.length; i++){
  if( !res.includes(arr[i]) ){ 
   res.push(arr[i]);
  }
 }
 return res;
}
console.log(unique([1,1,2,3,5,3,1,5,6,7,4]));
第五种
function unique(arr){
 var res = [];
  
 arr.forEach(function(item){
  res.includes(item) ? '' : res.push(item);
 }); 
 return res;
}
  
console.log(unique([1,1,2,3,5,3,1,5,6,7,4]));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值