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。
这个算法绝对经典,利用数组下标去除,实在是高
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。