首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

剔除数组中重复的元素

2012-10-09 
删除数组中重复的元素?//删除数组中重复的元素var numArr[6,3,1,2,3,4,5,3,3,3,3,3,3,4,4,4,4,4,4,4,6]f

删除数组中重复的元素

?

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

?

热点排行