1 <script type="text/javascript"> 2 var arr = ["b" ,"a" , "a", 2, 3, 3, 2, 1, 4, {}]; 3 Array.prototype.unique = function(){ 4 var ret = []; 5 var o = {};//这个对象在这里其实是起一个临时容器的作用,在下面的操作中,每次从数组取一个元素,然后判断以这个元素为属性名的对象是否存在于对象 6 //o中,如果是第一次使用这个元素(也即还没有出现重复的情况),那肯定不存在于对象o中,所以接下来要为这个属性随便赋个值(这样做的目的是使之成为 7 //一个拥有"属性名":"属性值"的完整对象,这样下次再有重复的数组元素也就是相同的属性名出现的时候不会再重复添加这个对象,最终保证ret.push(v) 8 //这个操作放进新数组里的元素是不重复的) 9 var len = this.length; 10 for (var i=0; i<len; i++){ 11 var v = this[i]; 12 if (!o[v]){ 13 o[v] = "hello,world";//随便赋个值,起占位作用,数字,字符串都可以 14 ret.push(v); 15 } 16 } 17 return ret; 18 }; 19 document.writeln(arr.unique()); 20 </script>
页面显示:b,a,2,3,1,4,[object Object]
时间: 2024-10-12 18:44:54