删除数组中重复的元素

 

//删除数组中重复的元素
var numArr=[6,3,1,2,3,4,5,3,3,3,3,3,3,4,4,4,4,4,4,4,6];
for(var i=0;i<numArr.length;i++){
	for(j=i+1;j<numArr.length;){//当两个元素相等,删掉一个之后,j的数值不变,还是原先的数
		if(numArr[i]==numArr[j]){
			numArr.splice(j, 1);
			}
		else{
				j++;//当两个元素不相同时,指针往后移动
			}
		}
	}
document.write(numArr);

好吧,这是最常见的思路,扩展性不好,可以采取给Array对象添加方法,就不需要再碰到同样的问题 还要把js再写一
遍了,只需调用XX.remove()

Array.prototype.remove=function(){
	var arr=[];
	for(var i=0;i<this.length;i++){
		for(j=i+1;j<this.length;){
			if(this[i]==this[j]){
			this.splice(j, 1);
			}
		else{
				j++;//当两个元素不相同时,指针往后移动
			}
			}
		}
		return arr;
		if(arr==null){alert("未定义")}
	}
var arr=[6,3,1,2,3,4,5,3,3,3,3,3,3,4,4,4,4,4,4,4,6];
arr.remove();
alert(arr);
 

下面的方法是采用的hash算法,真是具简洁啊

 

Array.prototype.unique = function() {  
     var data = [];  
     var a = {}; //声明一个对象,javascript的对象可以当哈希表用  
     for (var i = 0; i < this.length; i++) {  
         if(!a[this[i]]){  
             a[this[i]] = true;  
             data[data.length] = this[i];  
         }  
     }  
     return data;  
 };  
 var a = [6,3,1,2,3,4,5,3,3,3,3,3,3,4,4,4,4,4,4,4,6]; 
 alert(a);  
 alert(a.unique());  
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值