簡體   English   中英

僅在for循環的第一次迭代時更新數組

[英]Array only being updated on first iteration of a for loop

以下代碼采用如下結構的對象數組:{html: 無論數字: 數字值 }。

function Org(data){
//array of objects
var Data=data;
for(var i=0; i<Data.length; i++){
  var nums=[];
  nums.push(Data[i].number);
console.log(nums);}
}

當調用時,Nums應該在第二次迭代時以[1,1]的形式記錄到控制台:[{html:null,number:1},{html:null,number:1}]但是記錄為[1] ]在第一次和第二次迭代中。 為什么會這樣?

您需要在for循環之外移動num的初始化。 在里面它為每次迭代創建一個新的空數組。

順便說一句,不需要為data使用另一個變量。

function Org(data){
    var nums = [];
    for (var i = 0; i < data.length; i++){
        nums.push(data[i].number);
    }
    console.log(nums);
}

或更短:

var Org=data=>console.log(data.map(e=>e.number));

暫無
暫無

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

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