删除仅限空格的数组元素

ten*_*nub 9 javascript

由于使用array.splice就地修改了数组,如何在不抛出错误的情况下从数组中删除所有仅空白元素?使用PHP,我们有preg_grep,但我在JS中如何正确地执行此操作.

由于上述原因,以下内容不起作用:

for (var i=0, l=src.length; i<l; i++) {

    if (src[i].match(/^[\s\t]{2,}$/) !== null) src.splice(i, 1);

}
Run Code Online (Sandbox Code Playgroud)

错误:

未捕获的TypeError:无法调用undefined的方法'match'

Pau*_*per 22

"从数组中删除仅空白元素"的更好方法.

var array = ['1', ' ', 'c'];

array = array.filter(function(str) {
    return /\S/.test(str);
});
Run Code Online (Sandbox Code Playgroud)

说明:

Array.prototype.filter返回一个新数组,仅包含函数返回的元素true(或truthy值).

/\S/是一个匹配非空白字符的正则表达式./\S/.test(str)返回是否str具有非空白字符.


lir*_*zan 5

另一种基于过滤器的变体 - 可重用(功能)

    function removeWhiteSpaceFromArray(array){
    return array.filter((item) => item != ' ');
}
Run Code Online (Sandbox Code Playgroud)