Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在数组中的所有字符串前面加一个“quot;”最简单的方法是什么&引用;(感叹号)在javascript中?_Javascript_Arrays_Node.js_Glob_Minimatch - Fatal编程技术网

在数组中的所有字符串前面加一个“quot;”最简单的方法是什么&引用;(感叹号)在javascript中?

在数组中的所有字符串前面加一个“quot;”最简单的方法是什么&引用;(感叹号)在javascript中?,javascript,arrays,node.js,glob,minimatch,Javascript,Arrays,Node.js,Glob,Minimatch,当我想要包含或排除系统文件时,我使用了两个变量(使用minimatch glob语法,!表示排除) 但这感觉有点多余。是否有一种简单的方法可以将systemFiles数组转换为ignoredSystemFiles数组(即:在systemFiles中的所有项目前面加一个!) 我知道!systemFiles不起作用,但是像这样紧凑的东西会非常棒,因为它允许我消除ignoredSystemFiles变量。您可以使用它 var systemFiles = ['node_modules/**/*', '.

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

但这感觉有点多余。是否有一种简单的方法可以将
systemFiles
数组转换为
ignoredSystemFiles
数组(即:在
systemFiles
中的所有项目前面加一个

我知道
!systemFiles
不起作用,但是像这样紧凑的东西会非常棒,因为它允许我消除
ignoredSystemFiles
变量。

您可以使用它

var systemFiles = ['node_modules/**/*', '.git/**/*'];
var ignoredSystemFiles = systemFiles.map(function(el) { return '!' + el } );
你可以用这个

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

一个简单的循环可以做到这一点:

var ignoredSystemFiles = new Array(systemFiles.length);
for(var i = 0; i < systemFiles.length; i++) {
    ignoredSystemFiles[i] = '!' + systemFiles[i];
}

使用
Array.prototype.map
。使用
Array.prototype.map
。您可以从
[]
开始,并使用
push
来简化循环,但这可能是节点,因此
map
很好。由于预先分配了数组,因此效率更高,我想对于这样一个小循环来说,这并不重要。不过,它的效率并不高。你做过任何基准测试吗?@minitech是的,在节点land中-v8仍然没有优化数组方法调用,这更快是因为循环比.map快,而不是因为预先分配了一个2项数组。注意:这是完全不相关的,为了清晰起见,我会使用.map。@BenjaminGruenbaum:我的意思是“比推送更有效”;V8是否仍然将这些数组视为稀疏数组,并带来相关的性能影响?您可以从
[]
开始,并使用
推送
使循环变得更简单,但这可能是节点,因此
映射
很好。这更有效,因为预先分配了数组,我想对于这样一个小循环来说,这并不重要。不过,它的效率并不高。你做过任何基准测试吗?@minitech是的,在节点land中-v8仍然没有优化数组方法调用,这更快是因为循环比.map快,而不是因为预先分配了一个2项数组。注意:这是完全不相关的,为了清晰起见,我会使用.map。@BenjaminGruenbaum:我的意思是“比推送更有效”;V8是否仍然将它们视为稀疏阵列,并带来相关的性能影响?