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