如何计算一个函数被唯一调用的次数

时间:2020-01-26 22:23:21

标签: javascript

我是javascript的新手,正尝试从一开始就学习。 我有一个脚本,可以使用单选按钮进行两个不同的计算,面积和周长。 我想显示人们计算出不同计算的次数。 如果我习惯于显示单击按钮的点击次数,那么它将所有内容都计算在内,但是如何将它们分开?

document.getElementById("calculate").addEventListener("click", function() {
  var button = document.getElementById("calculate");
  var x, text;
  x = document.getElementById("radius").value;
  if (document.getElementById("area").checked) {
    if (isNaN(x) || x < 1 || x > 100) {
      text = "Fel radie";
      document.getElementById('radius').value = '';
    } else {
      let radius = document.getElementById("radius").value;
      area = Math.PI * radius * radius;
    }
    if (document.getElementById("areaoutput").innerHTML = text);
    else(document.getElementById("areaoutput").innerHTML = "Area = " + area);
  }


  if (document.getElementById("circumference").checked) {
    let radius = document.getElementById("radius").value;
    if (isNaN(x) || x < 1 || x > 100) {
      text = "Fel radie";
      document.getElementById('radius').value = '';
    } else {
      let radius = document.getElementById("radius").value;
      circumference = Math.PI * 2 * radius;
    }
    if (document.getElementById("circoutput").innerHTML = text);
    else(document.getElementById("circoutput").innerHTML = "Circumference = " + circumference);
  }
  if (document.getElementById("area").checked) {
    var count = localStorage.on_load_counter || 0;
    var button = document.getElementById("calculate");
    var display = document.getElementById("areacount");

    button.onclick = function() {
      localStorage.on_load_counter = display.innerHTML = ++count;
    }
  }
  if (document.getElementById("circumference").checked) {
    var count = localStorage.on_load_counter || 0;
    var button = document.getElementById("calculate");
    var display = document.getElementById("circcount");
  }
  button.onclick = function() {
    localStorage.on_load_counter = display.innerHTML = ++count;
  }

}, false);

2 个答案:

答案 0 :(得分:0)

尝试做这样的事情

var combinationsDone = [];

然后,每次用户进行计算时,您都将一个对象添加到combinationsDone

例如,如果半径为5,并且未选中周长,则应这样做。

var combination = {
    radius: 5,
    circumference: false
}

if(!combinationsDone.includes(combination)){
    combinationsDone.push(combination);
}

这样做是为了确保在添加组合之前,以前没有记录过该组合。然后,当您想获得它们完成的不同组合的数量时,只需使用用户combinationsDone.length

答案 1 :(得分:0)

您可以使用全局变量。每次调用该函数都会增加。

var myFuncCalls = 0;

function myFunction()
{
    myFuncCalls++;
    alert( "I have been called " + myFuncCalls + " times" );
}