簡體   English   中英

如何將一個數組推送到另一個數組

[英]How can I push an array to another array

請參閱下面的代碼,以及如何將數組添加到 TA 數組。

 var TA = [ { fname: "Carl", lname: "Buck", id: 12890, spec: "Programming", selected: true }, { fname: "Jim", lname: "Tomic", id: 13000, spec: "Database", selected: true }, { fname: "Dave", lname: "Jackson", id: 12000, spec: "Networking", selected: false }, { fname: "Jack", lname: "Bryant", id: 12345, spec: "Testing", selected: true }, { fname: "Peter", lname: "Pan", id: 11111, spec: "Testing", selected: false } ]; localStorage.TA = JSON.stringify(TA); var TA2 = JSON.parse(localStorage.TA); function create() { var fname = document.getElementById("fname").value; var lname = document.getElementById("lname").value; var id = document.getElementById("id").value; var spec = document.getElementById("program").value; var check = document.getElementById("check").value; TA2= TA2.concat(["fname"]: fname, ["lname]:lname, ["id"]:id, ["spec"]: spec, ["selected"]: check]) } var output = ""; for (var i = 0; i < TA2.length; i++) { for (var property in TA2[i]) { output += property + ": " + TA2[i][property] + "\r\n"; } } alert(output);

我猜你想將所有數據從一個數組推送(復制)到另一個數組,下面的代碼可以工作,

this.array2 = [...this.array1]

使用concat可以正常工作,但您發送的參數應該是正確的 object。 在您的代碼片段中存在語法錯誤(例如"lname缺少結束雙引號)。我已將您的 object 簡化為僅具有fnameid並清理您的代碼以顯示它可以在下面的代碼段中工作。我也只是使用了本地tmp變量而不是localStorageconsole.log而不是alert ,因此代碼片段可以在這里運行。

請注意,說{ fname }是寫作{ fname: fname }的縮寫形式,這使得它更具可讀性和工作性,因為變量名是鍵名。

此外,如果您只想在末尾添加一個新條目,則可以使用push function 而不是concat 它可以工作,但concat可以將一個數組或多個值作為參數,以允許您將 2 個 arrays 合並在一起,這並不是您真正在做什么。

 var TA = [ { fname: "Carl", id: 12890 }, { fname: "Jim", id: 13000 }, ]; var tmp = JSON.stringify(TA); var TA2 = JSON.parse(tmp); function create() { var fname = "Mary"; var id = 314159; TA2 = TA2.concat({ fname, id }); } create(); console.log(TA2);
如果你運行它,你會看到新條目被連接起來。

暫無
暫無

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

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