數組去重

方法一:

新建一數組,遍歷傳入數組,值不在新數組就push勁新數組裏 ie8如下不支持indexOf方法數組

   var newArr=[];
    var arr=[1,2,"2",4,9,"a","a",2,3,5,6,5];
    for(var i=0;i<arr.length;i++){
        if(newArr.indexOf(arr[i])<0){
            newArr.push(arr[i]);
        }
    }

方法二:

  • 新建一js對象以及新數組spa

  • 遍歷傳入數組時,判斷是否爲js對象的鍵,不是的話給對象新增該鍵並放入新數組code

  • 判斷是否爲js對象鍵時   會自動傳入的鍵執行 "toString()"
function uniq(arr){
        var temp={},newArr=[],val,type;
        for(var i=0;i<arr.length;i++){
            val=arr[i];
            type=typeof val;
            if(!temp[val]){
                //判斷是否存在這個js對象鍵
                temp[val]=[type];
                newArr.push(val);
            }else if(temp[val].indexOf(type) < 0){
                //因爲傳入的鍵會自動執行 "toString()"   因此要區別下類型
                temp[val].push(type);
                newArr.push(val);
            }
        }
        return newArr;
    }
    var arr=[1,2,"2",4,9,"a","a",2,3,5,6,5];
    uniq(arr);
相關文章
相關標籤/搜索