簡體   English   中英

如何使用JavaScript將兩個值添加到數組中

[英]How to add two values into the array using JavaScript

好吧,我想將文本框中的值添加到數組中,我試過但是它只能添加一個值,為什么?如果可能的話,我怎么能實現呢? 在我嘗試過的代碼下面,

<script type="text/javascript">
  var x = 0;
  var y = 0;
  var array = Array();

  function addintoarray() {
    array[x] = document.getElementById("cuna").value; //create the array for to add custumer name
    array[y] = document.getElementById("cuad").value; //create the array to add custemer address
    alert("Custmername: " + array[x] + "Added" + "Custmeraddress: " + array[y] + "Added"); //display msg
    x++; //count increament to add another one
    y++;
    document.getElementById("cuna").value = "";
    document.getElementById("cuad").value = "";
  }

</script>

<form method="post">
  <table border="1">
    <tr>
      <td>CustmerName</td>
      <td><input type="text" id="cuna" /></td>
    </tr>
    <tr>
      <td>CustmerAddress</td>
      <td><input type="text" id="cuda" /></td>
    </tr>
    <tr>
      <td><input type="submit" value="Add" onclick="addintoarray();" />
      </td>
      <td><input type="Submit" value="Display" onclick="displayintoarray" /></td>
    </tr>
  </table>
</form>

您將xy都初始化為0因此每次執行array[x] =array[x] =時都將索引為0的元素作為目標。 如果要添加項目,可以使用JavaScript的array.push()方法。

使用JavaScript對象存儲值既然我注意到您想繼續添加到數組中,則應考慮使用對象對數組中的數據進行分組。 var myArray = Array();

  function addintoarray() {
    let name = document.getElementById("cuna").value; 
    let address = document.getElementById("cuad").value;

    myArray.push({'customerName':name,'customerAddress':address})

    alert("Customername: " + name + "Added. " + "Customeraddress: " + address + "Added");

}`

您應該做的是更改x和y的值。

var x = 0;
var y = 1;
var array = Array();

然后這將起作用。

array[x] = document.getElementById("cuna").value; 
array[y] = document.getElementById("cuad").value; 

但是我認為您不需要這樣做。 您可以使用數組推送方法。

 array.push(document.getElementById("cuna").value)
 array.push(document.getElementById("cuad").value)

我認為您希望結果像這樣:

[[cuna1,cuad1] [cuna2,cuad2]]

在這種情況下,您應該執行以下操作:

let arrayToPush = [document.getElementById("cuna").value,document.getElementById("cuad").value]

(順便提一下,您在HTML中輸入的是錯字:“ cuda”而不是“ cuad”)

然后做

array.push(arrayToPush)

x = 0和y = 1的解決方案將不起作用,因為在第二輪中x將為1,y將為2,因此array [x]將覆蓋先前的值。 但是,他們是正確的說法,您應該避免使用索引,而應該推送到數組。

您將x,y用作具有相同值的索引,因此彼此替換。 您先分配array [x],然后分配array [y],這意味着在初始情況下

array[0]=document.getElementById("cuna").value;
array[0]=document.getElementById("cuad").value;

您可以使用兩個不同的初始值,例如x = 0,y = 1,並且仍然遞增值x + = 2; y + = 2;

相反,您可以使用數組原型推送值

array.push(document.getElementById("cuna").value);
array.push(document.getElementById("cuad").value);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM