你能解释下面的js代码吗?我不明白这里的foreach循环

时间:2017-10-05 03:18:58

标签: javascript

我不明白以下的foreach循环。你能解释一下吗?

var fs = require("fs");
console.log("Going to read directory /tmp");
fs.readdir("/tmp/", function(err, files) {
    if (err) {
        return console.error(err);
    }
    files.forEach(function(file) {
        console.log(file);

    });
});

5 个答案:

答案 0 :(得分:0)

根据fs文件:

异步readdir(3)。读取目录的内容。回调有两个参数(错误,文件),其中files是目录中文件名的数组,不包括'。'和' ..'。

因此,您有一个来自指定目录的文件列表。

Doc在这里:https://nodejs.org/api/fs.html#fs_fs_readdir_path_options_callback

答案 1 :(得分:0)

files这里是集合对象,可能包含多个项目。 forEach循环遍历files集合的每个项目,您可以通过forEach

访问function(file) {}内的每个项目(文件)

答案 2 :(得分:0)

forEach获取files数组的每一项,并为每个项执行函数,并将此项本身作为参数传递给函数。函数内的所有代码:

files.forEach(function(file) {
  console.log(file);
});

将针对每个数组项执行(它的工作方式类似于常规for循环)。

有关forEachhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

的详细信息

答案 3 :(得分:0)

如下所示:

var a = ["a", "b", "c"];
a.forEach(function(entry) {
 console.log(entry);
});

因此,例如,如果文件包含文件名数组,则每个文件将在浏览器控制台中打印。

答案 4 :(得分:0)

此:

files.forEach(function(file) {
    console.log(file);
});

完全相同:

for(var i=0;i<files.length;i++){
    console.log(files[i]);
}