更改函数内函数的局部变量

时间:2014-10-01 16:05:16

标签: javascript

我有一个函数,我收到一个值,并根据该值在函数内部执行另一个for过程。 for循环不同,但内部的过程是相同的。我想在for内调用一个函数,然后在第一个函数中更改局部变量。一个例子是:

// option = 1 to get first prime number from 1-100, 2 to get the last

function GetPrimeNumber(option){
  var number;

  if(option == 1){
    for(i=1; i < 101; i++){ 
      DetermineIfPrime(i);   
    }    
  }
  else if (option == 2){
    for(i=100; i > 0; i--){ 
      DetermineIfPrime(i);
    }
  }
}

然后让我的函数确定数字

function DetermineIfPrime(a){

 //Procedure

  if (a == prime){
    number = a;
    break;
  }   
}

有没有办法可以将anumberbreak的值返回到上一个函数?

2 个答案:

答案 0 :(得分:0)

来自return

DetermineIfPrime并将返回的值设置为number,如下所示:

function GetPrimeNumber(option){
  var number;

  if (option == 1) {
    for(i=1; i < 101; i++) { 
      number = DetermineIfPrime(i);   
    }    
  } else if (option == 2) {
    for (i=100; i > 0; i--) { 
      number = DetermineIfPrime(i);
    }
  }
}

function DetermineIfPrime(a){

  //Procedure

  if (a == prime){
    return a;
  }   
}

答案 1 :(得分:0)

数字是您的GetPrimeNumber函数的本地数字,因此如果您希望DetermineIfPrime函数能够“看到”它,您需要在GetPrimerNumber中定义它。

这不是可行的方法,你应该从函数中返回值并将其赋值给你的本地var。