由于使用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具有非空白字符.
另一种基于过滤器的变体 - 可重用(功能)
function removeWhiteSpaceFromArray(array){
return array.filter((item) => item != ' ');
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21148 次 |
| 最近记录: |