一.思路来源于YUI源码的排序方法
var arr=["a","b","c","b","c"];var obj= {};
var newarr=[];
function uniq(_arr){
for(var i =0,j=arr.length;i<j;i++){
if(!obj.hasOwnProperty(_arr[i])){
newarr.push(_arr[i]);
obj[_arr[i]] = true;
}
}
}
uniq(arr);
alert(newarr); // a,b,c
二. 该方法的思路
1. 先以目标数组的值为key生成一个对象. 这一步是最核心的: 因为在一个对象中, key是无法重复的, 这样就很巧妙的排除了重复值;
2. 遍历生成的对象, 将这些key取出来放到一个数组中, OK, 到此就大功告成了!(简单吧, 只需两步就行)
三.注意事项
obj[_arr[i]] = true; 此处不可以写成 obj._arr[i] = true;
这样结果会变成 a,b,c,b,c