Gibt es eine einfachere Möglichkeit, diese zu sortieren? Wenn ich readdir benutze, gibt es es so, dass es 1, 10, 11, 12 ... 19, 2, 20, usw. geht. Dieser Weg geht durch alle von ihnen und entfernt ".json" am Ende, DANN sortiert sie numerisch (was auf Zahlen, nicht auf Strings, funktioniert) und fügt dann die ".json" zum Ende zurück. Gibt es einen besseren Weg dies zu tun?Einfacher Weg, ein Array von .json-Dateien numerisch zu sortieren, die von fs.readdir stammen?
fs.readdir("data/items/", function(err,files) {
for(i = 0; i < files.length; i++) {
files[i] = files[i].split(".")[0];
}
files = files.sort(function(a,b){return a-b});
for(i = 0; i < files.length; i++) {
files[i] += ".json";
}
//load the files.. etc.
});
hat ein Beispiel für die Dateinamen? – Callam
Geben Sie eine Liste aller Dateien im Ordner "data/items" an. – Intervalia
Ihr aktuelles Beispiel sortiert nie etwas numerisch. (Ich brauche ein Beispiel für Dateinamen, um sicher zu sein), aber es sieht so aus, als ob Sie '0.json',' 1.json', ... '20.json' usw. haben. Ihr vergleiche fn in der Sortierung vergleicht Zeichenfolgen, weil Sie Übergeben Sie die Dateipräfixe niemals an Numbers. –