У меня есть папка, которая содержит файлы:Получить упорядоченный список файлов с помощью Javascript
s1, s2, s3, ... s9, s10, s11, ... s99, s100, s101, s102, s103, ...,
и скрипт, который выводит список этих файлов:
filesystem = require('fs');
filesystem.readdirSync('./folder').forEach(function (file) {
console.log(file);
});
, но я получаю неупорядоченный список, как это:
s0, s1, s10, s100, s101, s102, s103, ... s11, s110, s111, s112, s12
Я знаю причину, но я хочу, чтобы получить «номер» упорядоченный список, как это:
s1, s2, s3, ... s9, s10, s11, ... s99, s100, s101, s102, s103, ...,
имена папок не являются номерами и не могут быть оценены по номерам, поэтому они упорядочены по алфавиту. Однако, если у вас есть определенный шаблон для именования, из которого вы можете надежно извлечь номер, вы можете создать функцию, которая преобразует из строки в целое, и упорядочить список с помощью пользовательского сопоставления. – AlexanderMP
Сначала используйте Async, если это возможно ... если readdirSync абсолютно необходимо. Во-вторых, он возвращает отсортированные имена файлов, просто они сортируются на основе строки. Если вам нужно отсортировать их по номерам, вам придется анализировать значения целых чисел из их имен, а затем применять сортировку. – Aukhan
Повторяю, но короче: У вас есть определенный шаблон для имени файла? Это просто 's ##' для каждого файла, с которым вы будете работать? – AlexanderMP