最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

从fs.readdir获取数字排序的.json文件数组的简单方法?

IT培训 admin 2浏览 0评论

从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始终保持文件名列表。

发布评论

评论列表 (0)

  1. 暂无评论