Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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
Can´;t在JavaScript中调用函数_Javascript - Fatal编程技术网

Can´;t在JavaScript中调用函数

Can´;t在JavaScript中调用函数,javascript,Javascript,我正在做一个计算器,你可以在上面输入文字。为了测试代码,我只做了一个随机计数和几个“如果”。代码如下: var res=0, operator, pattern, num1, num2 myText= "2~3+2" pattern= /([\+\-\*\~\V/])/; var nums= myText.split(pattern); function makeCount() { num1= Number(num1); num2= Number(num2); if

我正在做一个计算器,你可以在上面输入文字。为了测试代码,我只做了一个随机计数和几个“如果”。代码如下:

var res=0, operator, pattern, num1, num2
myText= "2~3+2"
pattern= /([\+\-\*\~\V/])/;
var nums= myText.split(pattern);

function makeCount() {
    num1= Number(num1);
    num2= Number(num2);

    if (operator=== "~") {
        num1= Math.pow(num1,num2);
        nums.splice(i-1, 3, num1);
    }
    if (operator=== "+") {
        num1= num1+num2;
        nums.splice(i-1, 3, num1);
    }
 }

function SrtLoop() { //checks all the numbers
    for (var i=0; i<nums.length; i++) {
        if (nums[i]=== "~") {
            num1=nums[i-1];
            num2=nums[i+1];
            operator="~";
            makeCount();
        }
        if (nums[i]=== "+") {
            num1= nums[i-1];
            num2= nums[i+1];
            operator="+";
            makeCount();
        }
    }
}

SrtLoop();
res=num1;
var res=0,运算符,模式,num1,num2 myText=“2~3+2” 模式=/([\+-\*\~\V/]); var nums=myText.split(模式); 函数makeCount(){ num1=数量(num1); num2=数量(num2); 如果(运算符==“~”){ num1=数学功率(num1,num2); 接头(i-1,3,num1); } 如果(运算符==“+”){ num1=num1+num2; 接头(i-1,3,num1); } } 函数SrtLoop(){//检查所有数字
对于(var i=0;i您的
makeCount
函数没有任何对
i
的引用。您没有将
i
声明为全局变量(尽管这不是一个很好的做法)。您也没有将其作为参数传递给
makeCount
函数

var res=0, operator, pattern, num1, num2
myText= "2~3+2"
pattern= /([\+\-\*\~\V/])/;
var nums= myText.split(pattern);

function makeCount(i) {
    num1= Number(num1);
    num2= Number(num2);

    if (operator=== "~") {
        num1= Math.pow(num1,num2);
        nums.splice(i-1, 3, num1);
    }
    if (operator=== "+") {
        num1= num1+num2;
        nums.splice(i-1, 3, num1);
    }
 }

function SrtLoop() { //checks all the numbers
    for (var i=0; i<nums.length; i++) {
        if (nums[i]=== "~") {
            num1=nums[i-1];
            num2=nums[i+1];
            operator="~";
            makeCount(i);
        }
        if (nums[i]=== "+") {
            num1= nums[i-1];
            num2= nums[i+1];
            operator="+";
            makeCount(i);
        }
    }
}

SrtLoop();
res=num1;
var res=0,运算符,模式,num1,num2 myText=“2~3+2” 模式=/([\+-\*\~\V/]); var nums=myText.split(模式); 函数makeCount(i){ num1=数量(num1); num2=数量(num2); 如果(运算符==“~”){ num1=数学功率(num1,num2); 接头(i-1,3,num1); } 如果(运算符==“+”){ num1=num1+num2; 接头(i-1,3,num1); } } 函数SrtLoop(){//检查所有数字
对于(var i=0;i变量
i
在函数
makeCount()
中未定义。修改如下:

function makeCount(i) {
   //Your code
}
makeCount(i);
按如下方式修改调用:

function makeCount(i) {
   //Your code
}
makeCount(i);

你试过调试吗?@Alex:…但我不知道这和OP的问题有什么关系?