2016-11-09 15 views
0

我有一個奇怪的問題,我不明白。我想在JavaScript中創建一個JSON對象。我的示例代碼:在JavaScript中製作JSON

$(document).ready(function(){ 

var myJson = new Object(); 
var data = new Object(); 
myJson.items = []; 

data.name = 'test'; 

for (i = 0; i < 5; i++){ 
    data.counter = i; 
    myJson.items.push(data); 
} 
console.log(JSON.stringify(myJson)); 

}); 

輸出:

{"items":[{"name":"test","counter":4},{"name":"test","counter":4},{"name":"test","counter":4},{"name":"test","counter":4},{"name":"test","counter":4}]} 

爲什麼JSON計數器變量始終值4 ??????

+0

你正在改變的屬性總是相同的'data.counter'。 – Teemu

回答

4

你總是在相同的數據對象
,而不是試圖把數據對象初始化環路

var myJson = new Object(); 
 

 
myJson.items = []; 
 

 

 

 
for (i = 0; i < 5; i++){ 
 
    var data = new Object(); 
 
    data.name = 'test'; 
 
    data.counter = i; 
 
    myJson.items.push(data); 
 
} 
 
console.log(JSON.stringify(myJson));

+0

構造對象,將它們推送到一個數組,然後''JSON.stringify''也是一個選項。 – Crowes

+0

哦......真是個錯誤......當然......傻了我...... –

1

創建的var data = new Object();一個新的對象在for循環中,評論了上述之一,也把data.name = 'test';內部for循環