2013-03-03 198 views
-1

我對JS對象的理解很薄弱。如果我將一組對象傳遞給一個新的數組,然後嘗試獲取某個索引的長度或值(如下面摘錄),我返回一個未定義的消息。這裏有明顯的錯誤嗎?謝謝。將對象推入數組

var arrayTest = []; 
var objCollection = obj.name + obj.size + obj.weight; 
arrayTest.push(objCollection); 
alert(arrayTest[0]); // returns undefined 

爲了澄清,我正在收集顧客的產品選擇和恢復存儲在一個JSON文件的技術數據 - 用這把選擇到表的意圖。

{ 
"name": "the name", 
"size": "the size", 
"weight": "the weight" 
}, 
+1

什麼是'obj',你爲什麼要連接它的元素? – Alnitak 2013-03-03 10:28:30

+0

編輯完成後,它看起來像'obj'不具有這些屬性中的一個,另外兩個屬性是''「'。請檢查創建'obj'的代碼。 – Teemu 2013-03-03 10:49:31

+0

試試這個:'var objCollection ='1:'+ obj.name +',2:'+ obj.size +',3:'+ obj.weight;'。現在alert()的輸出是多少? – Teemu 2013-03-03 11:01:48

回答

0

確定objCollection實際上包含了價值? 它在我看來像是 obj的字段之一對象未定義,因爲將值與未定義的對象連接產生未定義。因此,你將一個未定義的對象推送到你的數組中,而不是你想要的。 請參閱Bergi's comment進行更正。

+0

是的,有值,謝謝。 – 2013-03-03 10:48:32

+0

在這種情況下,我很難再現您的問題。檢查[this](http://jsbin.com/irokij/1/edit) – igoratron 2013-03-03 11:08:30

+0

「*將值與未定義的對象連接產生未定義的*」 - 否。它返回與「undefined」連接的字符串。 – Bergi 2013-03-03 11:40:55