我对这种结构感到困惑。它来自已发布的npm模块。似乎作者知道他的javascript。它的版本在模块中出现了好几次。
[].concat( opts['boolean'] ).filter( Boolean ).forEach( function( key ){
flags.bools[key] = true;
});
由于它不会修改原始数组,并且从一开始就知道成员'boolean',为什么不只是:
opts.boolean.filter(Boolean).forEach(....
答案 0 :(得分:1)
也许是因为:
[].concat(undefined) // => [undefined]
undefined.filter(...) // => ERROR