有没有更简单的方法来对它们进行排序?当我使用readdir时,它以这样的方式给它:1,10,11,12 ... 19,2,20等。这种方式遍历所有这些并删除“.json”结尾,然后以数字方式对它们进行排序(这将在数字上正常工作,而不是字符串),然后将“.json”添加回到最后。有没有更好的方法呢?
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.
});
答案 0 :(得分:0)
fs.readdir("data/items/", function(err,files) {
files.sort(function(a, b){
return a.split(".")[0] - b.split(".")[0];
});
//load the files.. etc.
});
如果您信任文件的名称都很好,那就足够了。
sort method sorts到位了。并且在排序之前不需要分离所有前缀然后重新附加,compare函数可以保持该逻辑独立,并且files
var始终保持文件名列表。