如何用javascript调用函数中的函数小说明
我是java脚本的初学者,正在尝试一个解析文本文件数据的小程序。为了在特定日期创建一个过滤器,我制作了一个函数来获取用户输入的日期。如果它在文本文件中,那么a必须比较的日期是,这个日期也是我得到的。但是现在我不想重新编写下面代码中的函数“getAllFilesFromFolder”,在任何情况下都必须执行此函数,但是如果我单击“按日期筛选”按钮,它必须在用户给定的日期范围内读取文件。有人能给我解释一下怎么做吗。我已经尝试了下面的代码如何用javascript调用函数中的函数小说明,javascript,node.js,Javascript,Node.js,我是java脚本的初学者,正在尝试一个解析文本文件数据的小程序。为了在特定日期创建一个过滤器,我制作了一个函数来获取用户输入的日期。如果它在文本文件中,那么a必须比较的日期是,这个日期也是我得到的。但是现在我不想重新编写下面代码中的函数“getAllFilesFromFolder”,在任何情况下都必须执行此函数,但是如果我单击“按日期筛选”按钮,它必须在用户给定的日期范围内读取文件。有人能给我解释一下怎么做吗。我已经尝试了下面的代码 function getdate(){ var d
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++;
}
}
}
};
函数getdate(){
var dateStart=new Date($('#dateStart').val()).getTime();
var dateEnd=新日期($('#dateEnd').val()).getTime();
//如果(!testDate){var testDate=new Date(2014,05,02).getTime();}
var testDate=新日期(2014,05,02).getTime();
如果(dateStart我找到了问题的解决方案。有关更多信息,请参阅下面的代码
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{
}
}
}
}
};
函数范围日期(testDate){
var dateStart=new Date($('#dateStart').val()).getTime();
var dateEnd=新日期($('#dateEnd').val()).getTime();
if(dateStart)我不知道你的问题是什么。你能简化你的问题吗?还有,在javascript中文件读取应该如何发生,变量fse是什么?fse是文件系统额外的,它是node_js中的一个模块。文件读取发生在以下条件下(load==true).getAllFilesFolder必须至少执行一次,因为如果用户不希望使用日期筛选器并获得所有结果,则也必须能够执行。我的问题是我想创建一个日期筛选器,因此我创建了一个按钮,该按钮调用函数getdate来比较日期范围内的日期,现在我想将该函数放入函数getAllFile中sFromFolder。