javascript去除数组重复值var?array[1,1,2,2,3,3] ?? var?newArry[] ?? for(var?x?in?array){ ?? ?new
javascript去除数组重复值
var?array=[1,1,2,2,3,3]; ?? var?newArry=[]; ?? for(var?x?in?array){ ?? ?newArry[array[x]]=""; ?? } ?? for(var?y?in?newArry){ ?? alert(y); ?? }??
这个算法绝对经典,利用数组下标去除,实在是高
var?s?=?["a","b","a","c"]; ?? var?arr?=?[],?map?=?{},?n,?i; ?? for(i=0;?i<> ????n?=?s[i]; ?? ????if(!map.hasOwnProperty(n)){ ?? ????????map[n]?=?true; ?? ????????arr.push(n); ?? ????} ?? } ?? console.log(arr);??
按楼上所述试验了一把:
Array.prototype.say="haha"; ?? var?array=[new?Object(),"1,2#<%^&*()+}[]{",2,2,3,3,4,4,6,6,5,5]; ?? var?newArry=[]; ?? for(var?x?in?array){ ?? ????????newArry[array[x]]=""; ?? } ?? for(var?y?in?newArry){ ?? ????alert(y+"?"+typeof?y); ?? }??
结论:
这种写法也能处理除字符串外的其他数据。。
也没有破坏顺序。
但最后一条确实是那样的,会枚举原型链属性,需要使用hasOwnProperty。
