如何在HTML中将数组链接到JavaScript函数?

4

嗨,我刚接触JavaScript,对于如何调用函数感到非常困惑。我不确定为什么这个函数不能正常工作,并且希望得到一些指导。

我的HTML代码:

<html>
<head>
    <script type="text/javascript" src="problem2.js"></script>
</head>
<body>
<INPUT TYPE="button" NAME="Answer" VALUE="Click to see Answer" onClick="MyFunction(array);">
    <div id="answer"></div>
</body>
</html>

我的 JavaScript:

var array = [3, 1, 1, 'a', 'a', 3, 'b', 'f', 'a', 1, 'a'];

function MyFunction(array) {
    var counter = 0,
        amount = 1,
        highest;

    for (var i=0; i<array.length; i++) {
        for(var j=i; j<array.length;j++) {
            if (array(i) ===array(j)){
                counter++;
            }
            if(counter>amount){
                amount=counter;
                highest=array[i];
            }
        }
        counter = 0;
    }
    document.getElementById("answer").innerHTML(highest + " " + amount + times");
}

很多错别字 - https://jsfiddle.net/arunpjohny/d7huq7kf/2/ - Arun P Johny
2个回答

4

你的函数中有几个错误,首先访问数组项应该使用方括号[]而不是圆括号(),例如:

if (array[i] === array[j]){
     counter++;
}

以下行中缺少一个双引号",同时要使用innerHTML分配HTML,您应该在其后面加上=

document.getElementById("answer").innerHTML(highest + " " + amount + times");

Should be :

document.getElementById("answer").innerHTML = highest + " " + amount + "times";

您无需从HTML中传递数组,因为该数组已在JS代码中定义,所以只需使用它:

<INPUT TYPE="button" NAME="Answer" VALUE="Click to see Answer" onClick="MyFunction();">

//Define function without argument
function MyFunction() {
   //your code here
}

希望这能有所帮助。

工作示例

var array = [3, 1, 1, 'a', 'a', 3, 'b', 'f', 'a', 1, 'a'];

function MyFunction() {
  var counter = 0;
  var amount = 1;
  var highest;
  var i;
  for (i=0; i<array.length; i++)
  {
    for(var j=i; j<array.length;j++){
      if (array[i] === array[j]){
        counter++;
      }

      if(counter>amount){
        amount=counter;
        highest=array[i];
      }
    }
    counter = 0;
  }

  document.getElementById("answer").innerHTML = highest + " " + amount + "times";
}
<INPUT TYPE="button" NAME="Answer" VALUE="Click to see Answer" onClick="MyFunction();">
  <div id="answer"></div>


0

您提供的代码的工作副本和一个FIDDLE链接

<body>
  <script>
    var array = [3, 1, 1, 'a', 'a', 3, 'b', 'f', 'a', 1, 'a'];

    function MyFunction(array) {
      var counter = 0;
      var amount = 1;
      var highest;
      var i;
      for (i = 0; i < array.length; i++) {
        for (var j = i; j < array.length; j++) {
          if (array[i] === array[j]) {
            counter++;
          }

          if (counter > amount) {
            amount = counter;
            highest = array[i];
          }
        }
        counter = 0;
      }

      document.getElementById("answer").innerHTML = highest + " " + amount + " times";
      }

  </script>
  <INPUT TYPE="button" NAME="Answer" VALUE="Click to see Answer" onClick="MyFunction(array)">
  <div id="answer"></div>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接