js 字符串類型的數組去掉重複項

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章