2014-01-20 155 views
0

這是非常基本的,但我只是看不到我在這裏丟失的東西。它需要填充的object實例,每個都有自己的id填充數組時遇到問題

var objects= []; 
var object= {}; 

object.id = 1; 
objects[0] = object; 
object.id = 2; 
objects[1] = object; 
object.id = 3; 
objects[2] = object; 

當我alert(objects[0].id)提醒的第一個對象,它說3。 再次,我在這裏錯過了什麼?

+5

'object'始終是同一個對象。你只更新它的'id'屬性,並將它分配給數組中的兩個三個不同的位置。 –

回答

5

它保存對象作爲參考,所以一旦你改變了id,它會改變它的一切。 爲了解決它,你可以根本就

object.id = 1; 
objects[0] = object; 
object = {}; 
+1

感謝您的快速響應! :) – JordyV

7

這是因爲你推相同對象到陣列中的每個點。你需要每次都製作新的。

var objects = []; 

objects[0] = {id: 1}; 
objects[1] = {id: 2}; 
objects[2] = {id: 3}; 

或者更好的,只是讓這一切在一次:

var objects = [ 
    {id: 1}, 
    {id: 2}, 
    {id: 3}, 
]; 
+1

@ mori57:是的...這就是我得到的複製和粘貼:-P –

+0

非常感謝!兩個答案都很好,bt Shryme更符合我的需求,因爲我需要多個對象實例來存儲來自網站的數據。而且他可以使用這些分數超過你的能力;)! – JordyV