我的nodejs应用程序读取一些图像文件。但它按字母顺序排序。
在Node的左侧是什么,在右侧看它应该是什么样的。
我的Nodejs代码是:
var files = fs.readdirSync('./public/manga/' + req.params.name).map(function(item){
var subfolders = fs.readdirSync('./public/manga/' + req.params.name + '/' + item);
return {
chapter: item,
paths: subfolders.map(function (i) {
return "manga/" + req.params.name + "/" + item + "/" + i;
})
}
})
res.json(files);
});
我尝试并且没有工作。
var myarray=[25, 8, 7, 41]
myarray.sort(function(a,b){ //Array now becomes [7, 8, 25, 41]
return a - b
})
答案 0 :(得分:1)
您正在寻找natural sort订单。那里有很多的例子。
它有一个很好的npm模块https://github.com/Bill4Time/javascript-natural-sort。
您还可以实现快速功能,并且有很多很好的例子:
答案 1 :(得分:0)
此处的问题将出现在包含字母的文件名中。但是从你的例子开始,节点已经按照正确的顺序排序了00Letter,我有这样的简单解决方案
var a = ["10.jpg", "00a.jpg", "5.jpg", "00c.jpg", "3.jpg", "00b.jpg"];
var b = a.sort(function(a,b) {
return parseInt(a) > parseInt(b);
});
console.log(b);
//output
["00a.jpg", "00c.jpg", "00b.jpg", "3.jpg", "5.jpg", "10.jpg"]
<强>更新强> 正如@Ding所说。最好创建捕获所有内容的自定义函数,而不是希望节点排序。
希望这有帮助。