如何在javascript中计算文件中的函数数
我是编程新手,遇到了一个无法构建其逻辑的问题。在这个问题上,我必须计算js文件中存在的函数数。我尝试使用fs.readFile方法读取文件的内容。函数可以用多种方式编写,例如:如何在javascript中计算文件中的函数数,javascript,node.js,fs,Javascript,Node.js,Fs,我是编程新手,遇到了一个无法构建其逻辑的问题。在这个问题上,我必须计算js文件中存在的函数数。我尝试使用fs.readFile方法读取文件的内容。函数可以用多种方式编写,例如: 函数fun(){} const-fun=(){}(const关键字也可用于变量) 对象的成员 箭头函数 匿名函数(普通函数和箭头函数) 因此,我不明白如何在文件中识别所有这些类型。有人能帮我区分所有的功能吗 var fs = require("fs") function task14(pathToF
函数fun(){}
const-fun=(){}
(const关键字也可用于变量)var fs = require("fs")
function task14(pathToFile){
return new Promise((resolve, reject)=>{
fs.readFile(pathToFile,"utf8", (error, content)=>{
if(error)
reject("Error reading file");
else{
let functionCount=0, variableCount=0;
var arrOfContent = content.split(" ")
arrOfContent.forEach(a=>{
if(a == "let" || a == "var" || a == "const")
variableCount++;
else if(a == "function" || a == "=>")
functionCount++;
})
resolve({
functionCount : functionCount,
variableCount : variableCount
})
}
})
}
)}
const fs=require(“fs”);
常量fetchData=(文件路径)=>{
返回新承诺((解决、拒绝)=>{
fs.readFile(文件路径,“utf8”,(错误,数据)=>{
如果(错误)
拒绝(“读取文件时出错”);
否则{
日志(“数据::”,数据);
var countVar=0;
var-countFun=0;
var arr1=data.split(“函数”);
var arr2=data.split(“()=>”);
var arr3=数据分割(“”);
对于(var i=0;i我不会仅仅用文本来计算它。我可以放一个像/()=>()
这样的代码,然后你的程序会计算它
使用类似的方法来解析代码并计算有多少函数标记。您可以分享一个摘录,并向我们展示您难以识别的函数吗?您可能需要解析JS文件。这里有一些库。我已经用我编写的代码更新了我的查询,以计算函数和变量。希望这能澄清问题问题更清楚了。@EvolutionXbox是否允许实例化该文件?根据我的统计,这里有4个函数定义。一个函数声明和三个匿名箭头函数。你能看到它们吗?你正在努力解决哪些函数?你能看到我遗漏的其他函数吗?
const fs = require("fs");
const fetchData = (filePath) =>{
return new Promise((resolve,reject) =>{
fs.readFile(filePath,"utf8",(err,data)=>{
if(err)
reject("Error reading file");
else{
console.log("Data::",data);
var countVar = 0;
var countFun = 0;
var arr1 = data.split("function");
var arr2 = data.split("() =>");
var arr3=data.split(" ");
for(var i=0;i<arr3.length;i++){
if(arr3[i] == "let" || arr3[i] == "var" || arr3[i] == "const")
countVar++;
}
countVar = (countVar+arr2.length-2);
var countFun = ((arr1.length-1)+(arr2.length-1));
var ans = {
functionCount :countFun,
variableCount :countVar
}
resolve(ans);
}
})
})
}
module.exports = fetchData;