过滤数组假值

删除数组中的所有假值。

在JavaScript中,假值有

false、null、0、""、undefined 和 NaN。

知识点

  • Array.filter()
    语法var new_array = arr.filter(callback[, thisArg])
  • callback
    用来测试数组的每个元素的函数。调用时使用参数 (element, index, array)。
    返回true表示保留该元素(通过测试),false则不保留。
  • thisArg
    可选。执行 callback 时的用于 this 的值。
  • 返回值
    一个新的通过测试的元素的集合的数组
    !!!filter 不会改变原数组,它返回过滤后的新数组。
    例子:
function isBigEnough(element) {
  return element >= 10;
}
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered is [12, 130, 44]

function bouncer(arr) {
  return arr.filter(function(value){
    return (value !== false && value !== null && value !== 0 && value !=="" && value !== undefined && !isNaN(value));
  });
}

bouncer([7, "ate", "", false, 9]);

有误,因为"ate"也被滤掉,isNaN()不仅仅是传入NaN时返回True,只要不是数字,都返回True。

一个简单的解法:

function bouncer(arr) {
  return arr.filter(function(value){
    return value;
  });
}

bouncer([7, "ate", "", false, 9]);

你可能感兴趣的:(过滤数组假值)