//删除数组中重复的元素
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());
166

被折叠的 条评论
为什么被折叠?



