从fs.readdir获取数字排序的.json文件数组的简单方法?
有没有更简单的方法来排序这些?当我使用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.
});
回答如下:
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始终保持文件名列表。
从fs.readdir获取数字排序的.json文件数组的简单方法?
有没有更简单的方法来排序这些?当我使用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.
});
回答如下:
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始终保持文件名列表。