方法一:
如果只是過濾掉數組中的false,null,0,undefiend,NaN,"",而不考慮過濾帶空格的字符串" ",可以直接使用filter,代碼如下:
var arr = [false, null, 0, NaN, undefined, ""];
var newArr = arr.filter(Boolean);
console.log(newArr); // []
打印結果為[],順利將這些無效值過濾掉。
方法二:
對於 false,null,0,undefiend,NaN直接取!得到的都是true,因此這里只需要在判斷空字符串""和帶空格字符串" "。
直接看代碼:
function arrFilter(arr) {
return arr.filter(function (val) {
return !(!val || (typeof val === 'string' && val.trim() === ""));
});
}
var arr = arrFilter([false, null, 0, NaN, undefined, "", " "]);
console.log(arr); // []
打印結果為[]
注意:
1.需要單獨判斷空格字符串,保證為string類型,才能使用trim()來去除空格。
2.NaN與任何值比較包括它自身結果都是false,因此也可以使用isNaN()函數來檢查。