2014-05-16 59 views
-2

我想分配數組中的對象。例如:指定數組中的對象javascript

var catties = []; 

for (var i=0; i<5; i++){ 
    catties[i].name = "cat" + i; 
} 

var Str = ""; 

for (var j=0; j<catties.length; j++){ 
    Str = Str + catties[j].name + "\n"; 
} 
alert(Str); 

所以,我希望輸出會是這樣: CAT1 CAT2 CAT3 等

謝謝!

+1

這裏有什麼問題嗎? –

+0

其錯誤,如果寫這樣的代碼 –

+1

如果你發佈錯誤,人們通常會幫助你更快。 –

回答

1
var catties = []; 

for (var i=0; i<5; i++){ 
    var temp={}; 
    temp.name = "cat" + i; 
    catties.push(temp); 
} 

var Str = ""; 

for (var j=0; j<catties.length; j++){ 
    Str = Str + catties[j].name + "\n"; 
} 
alert(Str); 
+0

謝謝!!有用。 –

1

的問題是在此塊:

for (var i=0; i<5; i++){ 
    catties[i].name = "cat" + i; 
    } 

你到還不存在數組的索引分配值。

for (var i=0; i<5; i++){ 
    var cat = { name: "cat" + i }; 
    catties.push(cat); 
} 

for (var i=0; i<5; i++){ 
    var cat = { name: "cat" + i }; 
    catties[i] = cat; 
} 

此追加 「貓」 變量數組的末尾。

+0

不是'.name'沒有被定義(它沒關係,我們分配給它),而是'catties [i]'。你不需要使用'push'按鈕,分配給'catties [i]'也可以。 – Bergi

+0

你是對的;今天太多地在Java和JS之間切換了。定影。 –

0

這是一個小提琴,可以滿足您的需求。 「名字」對象沒有定義:

http://jsfiddle.net/DianaNassar/94tVw/

var catties = []; 

for (var i=0; i<5; i++){ 
    catties.push({'name': 'cat' + i}); 
} 

var Str = ""; 

for (var j=0; j<catties.length; j++){ 
    Str = Str + catties[j].name + "\n"; 
} 
alert(Str); 
0

DEMO

如果你想要把內部數組對象,需要先構造一個對象,然後你可以把它。

根據您的代碼,您只推送了該值。

所以用這個:

var catties = []; 

for (var i=0; i<5; i++){ 
    var tempObject = {}; 
    tempObject.name = "cat" + i; 
    catties.push(tempObject); 
} 

var Str = ""; 

for (var j=0; j<catties.length; j++){ 
    Str = Str + catties[j].name + "\n"; 
} 
alert(Str);