什么是最简单的方法前缀在JavaScript中的所有string与“!”(感叹号)?
当我想要包含或排除系统文件时,我使用了两个variables(使用minimatch glob语法,其中!
表示排除)。
var systemFiles = ['node_modules/**/*', '.git/**/*']; var ignoredSystemFiles = ['!node_modules/**/*', '!.git/**/*'];
但是这感觉有点多余。 有没有一种简单的方法来将ignoredSystemFiles
数组转换为ignoredSystemFiles
数组(即:用!
在ignoredSystemFiles
所有项前缀)?
我知道!systemFiles
不起作用,但是像这样紧凑的东西会很棒,因为它可以让我消除ignoredSystemFiles
variables。
你可以使用这个
var systemFiles = ['node_modules/**/*', '.git/**/*']; var ignoredSystemFiles = systemFiles.map(function(el) { return '!' + el } );
一个简单的循环应该这样做:
var ignoredSystemFiles = new Array(systemFiles.length); for(var i = 0; i < systemFiles.length; i++) { ignoredSystemFiles[i] = '!' + systemFiles[i]; }
或者如果你使用了一个足够新的浏览器,不关心ie <9;
var ignoredSystemFiles = systemFiles.map(function(v) { return '!' + v; })