方法一:
如果只是过滤掉数组中的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()函数来检查。