2017-10-05 1 views
0

Ich verstehe nicht die folgende foreach Schleife hier. Könnten Sie bitte erklären?Könnten Sie bitte den folgenden js-Code erklären? Ich verstehe nicht die foreach Schleife hier

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

    }); 
}); 
+0

Hallo, willkommen Überlauf zu stapeln. Bitte wenden Sie sich an den [ask] -Link für mehr Details darüber, wie Sie eine Frage stellen und Ihre Frage entsprechend aktualisieren. –

+0

Dateien werden zu einer Liste/Array/Sammlung irgendeiner Art angenommen, und jedes Element in dieser Sammlung wird in die Konsole geschrieben ... –

Antwort

0

Nach der fs-Dokumentation:

Asynchronous readdir (3). Liest den Inhalt eines Verzeichnisses. Der Callback erhält zwei Argumente (err, files), wobei files ein Array der Namen der Dateien im Verzeichnis ist, die '.' und '..'.

Sie haben also eine Liste der Dateien, die aus dem angegebenen Verzeichnis stammen.

Doc hier: https://nodejs.org/api/fs.html#fs_fs_readdir_path_options_callback

0

files ist Sammlungsobjekt hier die mehrere Elemente enthalten kann. Die forEach Schleife durchläuft jedes Element von files Sammlung und man jedes Element zugreifen kann (Datei) im Inneren forEach über function(file) {}

0

forEach nimmt jedes Element von files Array und führt die Funktion für jedes Element, und übergibt dieses Element selbst in die Funktion als ein Parameter. Der gesamte Code innerhalb der Funktion:

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

wird für jedes Array-Element ausgeführt werden (es funktioniert ähnlich wie reguläre for Schleife).

Für mor Informationen über forEach: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

0

Es ist so etwas wie unten:

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

So zum Beispiel, wenn Dateien Array von Namen von Dateien als jedes enthalten, wird in Browser-Konsole gedruckt werden.

0

Dies:

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

tut genau das gleiche aus:

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