Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中计算文件中的函数数_Javascript_Node.js_Fs - Fatal编程技术网

如何在javascript中计算文件中的函数数

如何在javascript中计算文件中的函数数,javascript,node.js,fs,Javascript,Node.js,Fs,我是编程新手,遇到了一个无法构建其逻辑的问题。在这个问题上,我必须计算js文件中存在的函数数。我尝试使用fs.readFile方法读取文件的内容。函数可以用多种方式编写,例如: 函数fun(){} const-fun=(){}(const关键字也可用于变量) 对象的成员 箭头函数 匿名函数(普通函数和箭头函数) 因此,我不明白如何在文件中识别所有这些类型。有人能帮我区分所有的功能吗 var fs = require("fs") function task14(pathToF

我是编程新手,遇到了一个无法构建其逻辑的问题。在这个问题上,我必须计算js文件中存在的函数数。我尝试使用fs.readFile方法读取文件的内容。函数可以用多种方式编写,例如:

  • 函数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;