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