【发布时间】:2017-08-26 08:09:12
【问题描述】:
我想在子函数的范围内使用.concat,而不是推送,然后在范围链的上层访问它。
我这里有一个简单的函数,可以在通过正则表达式函数运行文件后列出目录中的文件,以过滤掉某些文件名和文件类型。以下函数适用于 .push 数组方法,但如果我尝试使用 .concat ,它会返回一个空数组
fs.readdir('./schema', function(err,files){
var filelist = [];
if(err)
throw err;
else{
var index = files.length;
while(index>0){
filelist.concat(isNOTswapfile(files[index]));
index--;
}
console.log(filelist)
}
}
)
返回一个空数组[]
欢迎和赞赏帮助。
【问题讨论】:
-
你是如何使用 concat 的?向我们展示不起作用的代码。
-
你必须分配 concat 的结果,因为它返回一个新数组。
-
@Yatrix 抱歉,一个模组(可能是最初将其标记为重复的同一个模组)通过在此处复制和粘贴我的原始(和错误)帖子来编辑我的帖子。从那以后,我重新编辑了帖子。对不起!
-
@changed 有没有办法在不重新分配的情况下做到这一点?我正在尝试将某些类型的编程原则应用于我的代码(例如不使用改变代码的方法)。我认为重新分配是一些编程范式可能会发现问题的突变是错误的吗?
-
您可以使用
Array.prototype.push.apply( array1, array2 )就地添加到array1。
标签: javascript arrays scope closures