在函数中声明Javascript数组

时间:2018-07-26 06:01:06

标签: javascript

在按钮触发的函数中声明数组会导致该函数失败,并且无法按预期运行。发生这种情况的原因是什么? “功能C”块出了问题。

我还注意到,“ export ...”的ES6语法也会引起整个问题,它只接受“ module.export”。

我是一个初学者,所以我不知道发生了什么。

这是我的代码:

<!-- Bootstrap CSS -->
<link href="resources/bootstrap.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="resources/custom2.css">
<link href="resources/TCJA's CSS.css" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
  let TA = [0, 0, 0, 0]

  function MF() {
    TA = [0, document.getElementById("test1").value, document.getElementById("test2").value, document.getElementById("test3").value]
    document.getElementById("shout1").innerHTML = TA[1]
    document.getElementById("shout2").innerHTML = TA[2]
    document.getElementById("shout3").innerHTML = document.getElementById("testCheck").checked
  }

  function C() {
    var ACArray[0] = 2; //AttackerCard Array
    var DCArray[0] = 1; //DefenderCard Array
    var para = document.createElement("p");
    var node = document.createTextNode("The attackers dealt " + document.getElementById("wand").value + " damage to the defenders.");
    para.appendChild(node);

    var element = document.getElementById("newElement");
    element.appendChild(para);
  }
</script>

</head>

<body>
  <!-- Put code below -->
  <br>
  <label class="control-label">Tester Input</label>
  <input class="form" id="test1">
  <input class="form" id="test2">
  <input class="form" id="test3">
  <br>
  <button id="doge" class="btn btn-primary" onclick="MF()"><h3>Result</h3></button>
  <br>
  <input id="testCheck" type="checkbox"> Check it?
  <br>
  <h2>Result:</h2>
  <p id="shout1">Hello?</p>
  <p id="shout2">Hello again?</p>
  <p id="shout3">Hello a third time?</p>
  <br>
  <label class="control-label">Creator Input</label>
  <input class="form" id="wand">
  <button id="god" class="btn btn-success" onclick="C()"><h3>Create</h3></button>
  <br>
  <div id=newElement>

  </div>

  <button id="show">Show</button>
  <!-- JQuery -->

  <!-- End of body -->
</body>

</html>

3 个答案:

答案 0 :(得分:2)

通过声明var ACArray[0]=2;是什么意思?是的,好像声明第一个元素等于2的新数组,但是您的数组声明在哪里?

正确的方法:var ACArray = [2]; var DCArray = [1];,依此类推。

答案 1 :(得分:1)

声明数组在将值分配给数组之前。

var ACArray = [];
var DCArray = [];

function C(){
   ACArray[0] = 2;
   DCArray[0] = 1;
}

答案 2 :(得分:0)

以下语法不正确:

var ACArray[0]=2; //AttackerCard Array
var DCArray[0]=1; //DefenderCard Array

在JS中声明数组最方便的方法是这样的Array文字:

var array = ['item1', 'item2'];

我们现在要做的是将多个步骤合而为一。首先,我们使用var关键字和数组文字语法为数组创建了内存。

第1步:

var array = [];

然后我们初始化了数组,并将实际值放入数组中,如下所示:

第2步

array[0] = 'item1';
array[1] = 'item2';

重要的是,您现在可以通过以下方式引用所有这些元素:

console.log(array[0]);  // logs item1
console.log(array[1]);  // logs item2

还要注意,数组中元素的计数从0开始,而不是1。