章节目录排序问题
问题 使用fs.readdir(’./cartoon/一人之下’, function (err, files) {console.log(files);}打印出来的目录乱的一批,前10话直接放后面了
[“第10话10.恶劣的开始也算开始”, “第11话11.运气的触底反弹”, “第12话12.强力反弹中!”, “第13话13.卧槽,又被运气套住了!”, “第14话14.大家都想要我的肾么?”, “第15话15.离谱的绑匪和营救者”, “第16话16.正义必将战胜邪恶!”, “第17话17.正义的补刀……”, …]
解决方法
重新排序
“第10话10.恶劣的开始也算开始”.replace(/(第([0-9]))/i,function(match,param,offset,string){
console.log(offset);//提取章节号10
})
新建一个数组保存章节名和章节号
var arr=[];
for(var i=0;i<files.length;i++){
files[i].replace(/(第([0-9]))/i,function(match,param,offset,string){
arr.push({name:files[i],key:offset})
//console.log(offset);
});
}
然后根据key(章节号)排序
function compare(property){//排序函数
return function(a,b){
var value1 = a[property];
var value2 = b[property];
return value1 - value2;
}
}
arr=arr.sort(compare(‘key’))//排序结果保存下来
问题解决!