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

Javascript 如何在同一个重复函数中使变量替换值?

Javascript 如何在同一个重复函数中使变量替换值?,javascript,variables,calculator,var,Javascript,Variables,Calculator,Var,好的,所以我的问题的答案可能不是问题,但无论如何,这是一个开始 基本上这是计算器程序的一部分。我需要知道如何仅在该函数的第一次执行时(假设它可能会重复执行)获取变量y,并将变量x转换为该值,并在每次后续执行时保留该值。。。当调用另一个要更改其值的函数时,仍然允许更改输出.original_value。这是我程序中唯一一个我还没弄明白的部分 基本上,我试图模拟一个普通的计算器函数,如果用户按1+2,然后按=则计算结果将为3,然后在每次按=(即1+2=3=5=7…)时,将增加第二个数字的值(在本例中

好的,所以我的问题的答案可能不是问题,但无论如何,这是一个开始

基本上这是计算器程序的一部分。我需要知道如何仅在该函数的第一次执行时(假设它可能会重复执行)获取
变量y
,并将变量x转换为该值,并在每次后续执行时保留该值。。。当调用另一个要更改其值的函数时,仍然允许更改
输出.original_value
。这是我程序中唯一一个我还没弄明白的部分

基本上,我试图模拟一个普通的计算器函数,如果用户按1+2,然后按=则计算结果将为3,然后在每次按=(即1+2=3=5=7…)时,将增加第二个数字的值(在本例中为2)。我的计算器现在正做相反的事情(即1+2=3=4=5=6…)

(我已经尝试了很多东西…现在在函数末尾我有了
mathSign=null
,它可以防止程序在没有另一个函数先重置值的情况下运行多次…我没有在发布的代码中留下这一部分,因为我的最终目标是不必使用它。)


你可以试试类似的东西

  if( typeof result.first == 'undefined' ) {
        result.first = 0;
        result.y = parseFloat(output.value);
        alert (result.y);
        var y = result.y;
    }
    else 
    {
        var y = result.y;
        alert (y);
    }

将其替换为var y=parseFloat(output.value),基本上它首先检查某个静态变量是否已设置,如果未设置(首次传递),则设置y,并且每隔一次仅使用第一个y。我认为它应该有用这是解决我问题的最好办法。它本质上是一个变量切换器,与我的计算器代码的其余部分一起工作时令人惊讶:-)


好吧,我试过了,但不幸的是没用。它工作了2次点击,然后没有更多。问题是,从现在起,当连续重复调用函数时,
var x
是静止的,不固定的,而
var y
每次都接受optput的值。这是可以的,但是我需要
var x
在第一次运行时获取
y
的值,然后在以后每次单击
=
按钮时保持该值不变。你能发送你的代码吗,我可以试试,那样会容易得多,或者你可以压缩并发送,在这里发布整个东西会很疯狂。你可以发送zip文件,当你可以真正测试它时,它会更容易。我更改了答案,所以你可以查看它
  if( typeof result.first == 'undefined' ) {
        result.first = 0;
        result.y = parseFloat(output.value);
        alert (result.y);
        var y = result.y;
    }
    else 
    {
        var y = result.y;
        alert (y);
    }
function variable_toggle(){
  output.variable_toggle;
  if(output.value == mathSign){
    output.value = output.original_value;
  }
  if(output.variable_toggle != false){
    var x = output.original_value;
    var y = parseFloat(output.value);
    output.toggled_value = parseFloat(output.value);
    result(x, y);
    output.variable_toggle = false;
  }
  else{
    var x = parseFloat(output.value);
    var y = parseFloat(output.toggled_value);
    result(x, y);
  }
}