2017-06-03 120 views
2

下面的代碼採用的結構,像這樣對象的數組:{HTML:任何號:數值}。陣列只被更新了的第一次迭代for循環

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);} 
} 
當與被叫

訂購數量應該被記錄到控制檯[1,1]上的第二次迭代:[{HTML:空,編號:1},{HTML:空,編號:1}]而是在第一次和第二次迭代中記錄爲[1]。爲什麼會這樣呢?

+1

地點變種NUMS = []循環之外 – Lalit

回答

6

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

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

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

或更短:

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