数组去重

var arr = [1,2,3,4,4,2,99,99,1,1,2,1,2];
第一种:new Set()

展示:new Set()代码片

 var box = Array.from(new Set(arr));
 var box = [...new Set(arr)];
 console.log(box);

第二种:indexOf()

展示:indexOf()代码片

var box = [];
for(var i = 0;i < arr.length;i++){
	if(box.indexOf(arr[i]) == -1){
		box.push(arr[i])
	}
}
console.log(box);

第三种:splice()

展示:splice()代码片

for(var i = 0;i < arr.length;i++){
	for(var j = i+1; j < arr.length;j++){
		if(arr[i] == arr[j]){
			arr.splice(j,1);
		}
	}
}
console.log(arr);

第四种:sort()+splice()

展示:sort()+splice()代码片

arr.sort();
for(var i = 0; i < arr.length;i++){
	if(arr[i] == arr[i+1]){
		arr.splice(i,1);
		i--;
	}
}	
console.log(arr);

第五种:递归函数

展示:递归函数代码片

Array.prototype.unique = function(){
	var arr = this;
	len = arr.length;
	arr.sort(function(a,b){
		return a - b; 
	})
	function loop(index){
		if(index >= 1){
			if(arr[index] === arr[index-1]){
				arr.splice(index,1);
			}
			loop(index-1);
		}
	}
	loop(len-1);
	return arr;
}
var b = arr.unique();
console.log(b);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值