javascript - 通过 Javascript 获取有序的文件列表

标签 javascript node.js

我有一个文件夹,里面有文件:

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, ...,

最佳答案

您可以使用 Array.prototype.sort通过剥离 s 并将其余部分解析为数字来对数组进行排序:

filesystem = require('fs');
var result = filesystem.readdirSync('./folder').sort(function (a, b) {
    return (+a.substr(1)) - (+b.substr(1));
});

关于javascript - 通过 Javascript 获取有序的文件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34743446/

相关文章:

javascript - 获取 Laravel Controller 中的 Js 值

javascript - 如何更新嵌套对象数组的值

mysql - 如何在一些约束下存储多条记录?

javascript - MongoDB 使用 node-mongodb-native 排序

javascript - 使用 Node.js 中的 API 调用清除 Cloudflare 缓存

node.js - 为什么我的函数在 storage.single 中被调用两次?

javascript - 您如何使用 Selenium WebDriver 和 NodeJS 测试 JavaScript 错误?

javascript - 使用 underscore.js 按子数组中的属性过滤

javascript - 如何每三个字符插入一个空格到句点字符?

javascript - for循环中的 promise 问题