js数组中过滤掉false, null, 0, "", undefined, NaN无效值

方法一:

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

posted @ 2021-02-04 11:19  ZerlinM  阅读(1991)  评论(0编辑  收藏  举报