javascript - 如何用javascript在函数中调用函数小解释

标签 javascript node.js

我是java脚本的初学者,正在尝试一个从文本文件中解析数据的小程序。为了在特定日期创建过滤器,我创建了一个函数来获取用户输入的日期。必须比较的日期是否在文本文件中的范围内,这个日期我也得到了。但现在我不想重写下面代码中的函数“getAllFilesFromFolder”,该函数必须在所有情况下执行,但如果我单击按日期过滤按钮,它必须读取用户指定范围内的日期的文件。有人能给我解释一下如何做吗?我已经尝试过下面的代码。

function getdate(){
      var dateStart = new Date($('#dateStart').val()).getTime();
      var dateEnd = new Date($('#dateEnd').val()).getTime();
      //if(!testDate){var testDate = new Date(2014, 05, 02).getTime();}
      var testDate = new Date(2014, 05, 02).getTime();
      if (dateStart <= testDate && testDate <= dateEnd) {
          alert('IN');
          //Here filter the files with the date 
      }else{
         alert('OUT');
         //Here no new to read and parse the file beacause it is out of range 
      }

    }

//Parse folder and file to get the required files
function getAllFilesFromFolder(folder){
  //Parsing the given folder the result which is return is kept in an array
  var test = fse.readdirSync(folder);
  //Going through the array 
  for(var n=0; test[n]; n++){
    var stats = fs.lstatSync(folder+"\\"+test[n]);
    if(stats && stats.isDirectory()){
      getAllFilesFromFolder(folder+"\\"+test[n]);
      var path = folder+"\\"+test[n]+"<br />";
      }else{  
        var path = folder+"\\"+test[n];
        //Regex on the file to be taken
        var pattern = /^(PM)[0-9]{5}[_](xam)[_](pmbok5th)[_](pmp)[_](v92)(.txt)$/;
        var parent = folder+"\\";
        var file = test[n];
        var load = pattern.test(file); 
        //Split on file to get the "id user"
        identifiant = file.split('_');
        //Test the regex on file name "PM*_xam_pmbok5th_pmp_v92.txt" 
        if(load == true){
          var read = fse.readFileSync(path, 'utf8');
          var suspendDate = read.lastIndexOf('xam/');
          var wantedDate = read.slice(suspendDate);
          info = wantedDate.split('/');
          var suspendData = read.lastIndexOf('/DB');
          var suspendData = wantedDate.lastIndexOf('/DB');
          var wantedData = wantedDate.slice(suspendData);
          var db_response = wantedData.split(".");
          var all_response = db_response[0].split(":");  


          if(typeof(info[2]) != "undefined" && all_response != "undefined"){
            var response = all_response[1].split("|");
            //Parsing the array response to find the "id" here id of the question and the "ans" here answer of the question "R" or "W"
            for(var p = 0; p < response.length; p++){
              //Test if result exist we increment if not it is generate with the function initResp
              if(typeof(response[p]) != "undefined"){
                var id = response[p].slice(0,6);
                var ans = response[p].slice(-1);
                if (question[id]) {
                  question[id][ans] += 1;
                  } else {
                    var results = initResp(ans);
                    question[id] = results;
                    }; 

                } else {
                  } 
            }
          } else {
            //$("#results1").append("<strong>La session est vide</strong><br>");
            }
          i++;
      } 
    }
  }
}; 

最佳答案

我找到了解决问题的方法。请参阅下面的代码了解更多信息

function rangeDate(testDate){
  var dateStart = new Date($('#dateStart').val()).getTime();
  var dateEnd = new Date($('#dateEnd').val()).getTime();
  if (dateStart <= testDate && testDate <= dateEnd) {
      date = true;
      return date;
  }else{
      date = false;
      return date;
  }

}
function getAllFilesFromFolder(folder)/*, useDate*/{
  //Parsing the given folder the result which is return is kept in an array
  var test = fse.readdirSync(folder);
  //Going through the array 
  for(var n=0; test[n]; n++){
    var stats = fs.lstatSync(folder+"\\"+test[n]);
    if(stats && stats.isDirectory()){
      getAllFilesFromFolder(folder+"\\"+test[n]);
      var path = folder+"\\"+test[n]+"<br />";
      }else{  
        var path = folder+"\\"+test[n];
        //Regex on the file to be taken
        var pattern = /^(PM)[0-9]{5}[_](xam)[_](pmbok5th)[_](pmp)[_](v92)(.txt)$/;
        var parent = folder+"\\";
        var file = test[n];
        var load = pattern.test(file); 
        //Split on file to get the "id user"
        identifiant = file.split('_');
        //Test the regex on file name "PM*_xam_pmbok5th_pmp_v92.txt" 
        if(load == true){
          var read = fse.readFileSync(path, 'utf8');
          var suspendDate = read.lastIndexOf('xam/');
          var wantedDate = read.slice(suspendDate);
          var info = wantedDate.split('/');
          testDate = new Date(info[4]).getTime();
          rangeDate(testDate);
          if(date == true){
            var suspendData = read.lastIndexOf('/DB');
            var suspendData = wantedDate.lastIndexOf('/DB');
            var wantedData = wantedDate.slice(suspendData);
            var db_response = wantedData.split(".");
            var all_response = db_response[0].split(":");  
            if(typeof(info[2]) != "undefined" && all_response != "undefined"){
              var response = all_response[1].split("|");
              //Parsing the array response to find the "id" here id of the question and the "ans" here answer of the question "R" or "W"
              for(var p = 0; p < response.length; p++){
                //Test if result exist we increment if not it is generate with the function initResp
                if(typeof(response[p]) != "undefined"){
                  var id = response[p].slice(0,6);
                  var ans = response[p].slice(-1);
                  if (question[id]) {
                    question[id][ans] += 1;
                    } else {
                      var results = initResp(ans);
                      question[id] = results;
                      }; 

                  } else {
                    } 
              }
            } else {
              //$("#results1").append("<strong>La session est vide</strong><br>");
              }
            i++;
          }else{

          }

      } 
    }
  }


};

关于javascript - 如何用javascript在函数中调用函数小解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24604847/

相关文章:

node.js - 当套接字与服务器断开连接时,如何从房间取消订阅套接字

javascript - 简单的 jquery 第二个计数器

javascript - Slick Slider 按类过滤而不是 :even

javascript - 一个管理区域,其中包含用于更改猫的名称、url 和点击次数的输入(默认情况下隐藏)

javascript - NodeJS - mysql 包尊重完成 INSERT INTO...SET 后的列名称?

javascript - 如何让机器人响应 channel 提及?

javascript - NodeJS 计算数组中有多少个对象?

javascript - JavaScript 中的本地化

javascript - jQuery 按类搜索且 css 值不等于 foo

javascript - 使用 require 和 node.js 加载远程 js 文件