一.思路來源於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