改变变量中的特定事物

时间:2016-11-23 16:11:17

标签: javascript html math

我有一个存储在变量中的这样的等式 (50 * 1.07 ^ 1)其非常简单。我想知道每次函数运行时我怎么能改变功率:50 * 1.07 ^ 2,50 * 1.07 ^ 3等等。有帮助吗? 这是我的代码:

var mathForCost = 50 * 1.07 ^ 1;

function gainCoinsPS() {
    if (coins >= costPS) {
        coinsPS += 10;
        coins -= costPS;
        // Here is where I am changing the cost each time the function runs, 
        // so I need to make the power(^1) add 1 each time
        costPS = document.getElementById("changePrice1").innerHTML = "Cost: " + costPS;
    } else {;
        alert("You dont have enough coins!");
    };

}

7 个答案:

答案 0 :(得分:0)

将电源保存到变量,您可以在需要时更新它。您最好将等式放入函数并将幂传递给它,然后返回解决方案。



var power = 1,
    eq    = function(p){
         return 50*1.07^+p; // returns solution
   }; 

for(var i=0; i<10; i++){

     power = i;

     console.log( eq(power) ); // solution

}

 
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您可以将状态存储到运行等式的函数中。这有助于您避免在函数外添加更多状态。让函数跟踪它被调用的次数。

&#13;
&#13;
function calc() {
  if (!this.i) {
    this.i = 1;
  }
  return (50 * Math.pow(1.07, this.i++));
}

console.log(calc());
console.log(calc());
console.log(calc());
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您可以将力量存储在变量中,并在每次调用函数时将其递增。

&#13;
&#13;
var power = 1;

function calculate() {
  console.log(50 * Math.pow(1.07, power));
  power++;
}

calculate();
calculate();
calculate();
&#13;
&#13;
&#13;

答案 3 :(得分:0)

在Javascript中,你不能将一个等式存储在一个变量中,除了可能是一个字符串(但它充满了自己的问题)。您的函数将在执行时进行评估,输出的值将存储在变量中。

要做你想做的事情,你最好有一个运行方程式的函数,并且每次增加功率 - 如果功率在更高的范围内,这可以工作(或者可以通过闭包实现) )

var power = 1;
function getCost()
    var cost = Math.pow(50*1.07, power);
    power++;
    return cost;
}

每次运行此功能时,它都会返回计算出的成本并增加功率值,因此下次运行时它会高一个。

或者,如果你想要关闭路线,你可以这样做:

var getCost = (function () {
    var power = 1;
    return function () {
        var cost = Math.pow(50*1.07, power);
        console.log(power);
        power++;
        return cost;
    }
})();

答案 4 :(得分:0)

Math.pow函数是javascript。

你可以使用这样的东西

var pow = 1;
for(var power=1; power<limit; power++){ // run the loop upto a limit
 console.log(Math.pow(50*1.07, power);
}

答案 5 :(得分:0)

您可以使用它的功能。

getCost = function (n) { return 50 * Math.pow(1.07, n); };

或者使用ES6&#39; arrow function

getCost = n => 50 * Math.pow(1.07, n);

调用它
value = getCost(1);

答案 6 :(得分:0)

要将priceLines的幂增加1,每次只需将值乘以1.07(根本不需要1.07函数)

pow