js中特殊字符去重寫法

var arr = [NaN, NaN, undefined, undefined, null, '', '', NaN, undefined, undefined, null];
//判斷一個數組裏有沒有NaN
function chechNaNFromArr(arr) {
    if(!arr || arr.length == 0) return false;
    for(var i = 0; i < arr.length; i++) {
        if(Number.isNaN(arr[i])) {
            return true;
        }
    }
    return false;
}
//判斷一個數組裏有沒有undefined
function chechUndefinedFromArr(arr) {
    if(!arr || arr.length == 0) return;
    for(var i = 0; i < arr.length; i++) {
        if(typeof arr[i] === "undefined") {
            return true;
        }
    }
    return false;
}
//判斷一個數組裏有沒有null
function chechNullFromArr(arr) {
    if(!arr || arr.length == 0) return;
    for(var i = 0; i < arr.length; i++) {
        if(typeof arr[i] === "object" && arr[i] == arr[i]) {
            return true;
        }
    }
    return false;
}
//去重
function quChong(arr) {
    var newArr = [];
    for(var i = 0; i < arr.length; i++) {
        //NaN處理
        if(Number.isNaN(arr[i])) {
            if(!chechNaNFromArr(newArr)) {
                newArr.push(arr[i]);
            }
            continue;
        }
        //undefined處理
        if(typeof arr[i] === "undefined") {
            if(!chechUndefinedFromArr(newArr)) {
                newArr.push(arr[i])
            }
            continue;
        }
        //null處理
        if(typeof arr[i] === "object" && arr[i] == arr[i]) {
            if(!chechNullFromArr(newArr)) {
                newArr.push(arr[i]);
            }
            continue;
        }
        //其他處理
        if(newArr.indexOf(arr[i]) == -1) {
            newArr.push(arr[i]);
        }
    }
    return newArr;
}
console.log(quChong(arr))

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