0
私はこの構成に困惑します。公開されたnpmモジュールのものです。著者は彼のjavascriptを知っているようだ。モジュールのバージョンはモジュール内で数回表示されます。困惑のjavascript配列の構文
[].concat(opts['boolean']).filter(Boolean).forEach(function(key){
flags.bools[key] = true;
});
それは、元の配列ともメンバー「ブール」が最初から知られている理由だけではなく、変更されませんので:たぶん、このための
opts.boolean.filter(Boolean).forEach(....
'opts ['boolean']' *おそらく*はn配列をフィルタリングまたはマップすることはできません。 –
作者はおそらく省略形が非正規のArrayオブジェクトに対して '.concat'を呼び出さないようにしたいと考えていますが、' .filter() 'は本当の値を保持するので、' opts.boolean'が普通のオブジェクトであれば'flags.bools [" [object Object] "] = true;'を実行します。おそらく著者はそれでOKですが、それは最良のアプローチのようには思えません。 –
IMO、もっと良い方法は 'if(Array.isArray(opts.boolean)){opts.boolean.filter(Boolean).forEach(...)}' –