js中特殊字符去重写法

2024-02-29 18:21:28 浏览数 (2)

代码语言:text复制
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))

0 人点赞