开发者社区> 问答> 正文

从Javascript数组中删除空元素

如何从JavaScript中的数组中删除空元素?

有没有简单的方法,还是我需要遍历它并手动将其删除?

展开
收起
保持可爱mmm 2020-01-13 16:32:14 437 0
1 条回答
写回答
取消 提交回答
  • 现在,当然,我建议您使用该filter方法。

    请记住,此方法将为您返回一个新数组,其中的元素可以通过您提供给它的回调函数的条件。

    例如,如果要删除null或undefined值:

    var array = [0, 1, null, 2, "", 3, undefined, 3,,,,,, 4,, 4,, 5,, 6,,,,];

    var filtered = array.filter(function (el) { return el != null; });

    console.log(filtered);

    例如,这将取决于您认为什么是“空”,如果您正在处理字符串,则上述函数不会删除为空字符串的元素。

    我看到经常使用的一种典型模式是除去那些元件falsy,包括一个空字符串"",0,NaN,null,undefined,和false。

    您可以传递给filter方法,Boolean构造函数或在过滤条件函数中返回相同的元素,例如:

    var filtered = array.filter(Boolean);

    要么

    var filtered = array.filter(function(el) { return el; });

    在这两种方式中,这都是可行的,因为filter在第一种情况下,该方法将Boolean构造函数作为一个函数调用,将其转换为值,而在第二种情况下,该filter方法在内部将回调的返回值隐式转换为Boolean。

    如果您正在使用稀疏数组,并且试图摆脱“漏洞”,则可以使用filter传递返回true的回调的方法,例如:

    var sparseArray = [0, , , 1, , , , , 2, , , , 3], cleanArray = sparseArray.filter(function () { return true });

    console.log(cleanArray); // [ 0, 1, 2, 3 ]

    问题来源于stack overflow

    2020-01-13 16:44:15
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
现代Javascript高级教程 立即下载
JS零基础入门教程(上册) 立即下载
Javascript异步编程 立即下载