美文网首页
过滤数组假值

过滤数组假值

作者: 黑夜的眸 | 来源:发表于2018-05-29 22:06 被阅读0次

    删除数组中的所有假值。

    在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]);
    

    相关文章

      网友评论

          本文标题:过滤数组假值

          本文链接:https://www.haomeiwen.com/subject/pgkzjftx.html