Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.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 - Fatal编程技术网

Javascript 在函数中更改函数中的局部变量

Javascript 在函数中更改函数中的局部变量,javascript,Javascript,我有一个函数,在其中我接收一个值,并根据该值在函数内为执行另一个过程。循环的不同,但内部过程相同。我想为调用中的一个函数,该函数随后将更改第一个函数中的局部变量。例如: // 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+

我有一个函数,在其中我接收一个值,并根据该值在函数内为执行另一个
过程。
循环的
不同,但内部过程相同。我想为
调用
中的一个函数,该函数随后将更改第一个函数中的局部变量。例如:

// 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);
    }
  }
}

有没有一种方法可以将
a
返回到
number
break
等值返回到上一个函数?

determinateifprime
返回
,并将返回值设置为
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;
  }   
}
函数GetPrimeNumber(选项){ var数; 如果(选项==1){ 对于(i=1;i<101;i++){ 数量=确定数量(i); } }否则如果(选项==2){ 对于(i=100;i>0;i--){ 数量=确定数量(i); } } } 函数确定优先(a){ //程序 如果(a==素数){ 返回a; } }
数字是GetPrimeNumber函数的本地数字,因此如果您希望DetermineIfPrime函数能够“看到”它,则需要在GetPrimerNumber中定义它


但这不是方法,您应该从函数返回值并将其分配给本地变量。

“有方法返回值吗…”是的,有。是的,有一种方法可以从函数中
返回
值…我建议您阅读。您不能从您所在的函数中影响另一个函数中以关键字
var
限定范围的变量。改用构造函数或对象。注意:您可以在
函数determinetifprime(){}
中使用返回值,在
GetPrimeNumber()
中赋值
number=determinetifprime(i)
,但我看不出它有什么意义,因为
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;
  }   
}