2013-03-03 116 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