如何将数组链接到 html 中的 javascript 函数

How to link an array to a javascript function in html?

本文关键字:html 中的 javascript 函数 链接 数组      更新时间:2023-09-26

嗨,我是Javascript的新手,我对如何实际调用函数感到非常困惑。我不确定为什么这不起作用,并希望得到一些输入。

我的网页 :

<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="answerswer"></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("answerswer").innerHTML(highest + " " + amount + times");
}

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

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

您错过了以下行中的双引号",也要使用innerHTML分配 HTML,您应该在它后面=

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

应该是 :

document.getElementById("answerswer").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("answerswer").innerHTML = highest + " " + amount + "times";
}
<INPUT TYPE="button" NAME="Answer" VALUE="Click to see Answer" onClick="MyFunction();">
  <div id="answerswer"></div>

您提供的代码的工作副本和它的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("answerswer").innerHTML = highest + " " + amount + " times";
      }
  </script>
  <INPUT TYPE="button" NAME="Answer" VALUE="Click to see Answer" onClick="MyFunction(array)">
  <div id="answerswer"></div>