什么是最简单的方法前缀在JavaScript中的所有string与“!”(感叹号)?

当我想要包含或排除系统文件时,我使用了两个variables(使用minimatch glob语法,其中!表示排除)。

 var systemFiles = ['node_modules/**/*', '.git/**/*']; var ignoredSystemFiles = ['!node_modules/**/*', '!.git/**/*']; 

但是这感觉有点多余。 有没有一种简单的方法来将ignoredSystemFiles数组转换为ignoredSystemFiles数组(即:用!ignoredSystemFiles所有项前缀)?

我知道!systemFiles不起作用,但是像这样紧凑的东西会很棒,因为它可以让我消除ignoredSystemFilesvariables。

你可以使用这个

 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; })