Pro*_*ofK -1 javascript ecmascript-5
我有一行遗留代码来分割半冒号的字符串:
var adds = emailString.split(/;+/).filter(Boolean);
Run Code Online (Sandbox Code Playgroud)
这filter(Boolean)部分可以做什么?
filter(Boolean) 只会保持数组中的truthy值.
filter期望一个回调函数,通过提供Boolean作为参考,它将被调用为数组中的Boolean(e)每个元素e,并且将返回操作的结果filter.
如果返回的值是true元素e将保留在数组中,否则它不包含在数组中.
例
var arr = [0, 'A', true, false, 'tushar', '', undefined, null, 'Say My Name'];
arr = arr.filter(Boolean);
console.log(arr); // ["A", true, "tushar", "Say My Name"]Run Code Online (Sandbox Code Playgroud)
在代码中
var adds = emailString.split(/;+/).filter(Boolean);
Run Code Online (Sandbox Code Playgroud)
我的猜测是字符串emailString包含由;分号多次出现的值分隔的值.
> str = 'a@b.com;;;;c@d.com;;;;dd@dd.com;'
> str.split(/;+/)
< ["a@b.com", "c@d.com", "dd@dd.com", ""]
> str.split(/;+/).filter(Boolean)
< ["a@b.com", "c@d.com", "dd@dd.com"]
Run Code Online (Sandbox Code Playgroud)
下面split就这将返回["a@b.com", "c@d.com", "dd@dd.com", ""].
| 归档时间: |
|
| 查看次数: |
646 次 |
| 最近记录: |