2016-11-16 121 views
0

我有一个名为selectedArray的数组。这是一个对象数组,这里是一个示例:如何从“[object Object]”获取值

selectedArray 
:Array[1] 
0:Object 
category_id:"8" 
created_at:"2016-11-04 14:14:28" 
lft:"17" 
name:"Felt Materials" 
rgt:"22" 
updated_at:"-0001-11-30 0:00:00" 
__proto__:Object 

我在下面有下面的代码。它通过selectedArray循环。该循环查看名为nodesWithchildren的构造相同的数组的值为lftrgt。当它发现符合我希望它拉出该对象并创建一个新的数组称为childNodes

var childNodes=[]; 

    for(i=0; i < selectedArray.length; i++){ 
    if((selectedArray[i].lft /1) > (nodesWithchildren[0].lft /1) && (selectedArray[i].rgt/ 1) < (nodesWithchildren[0].rgt/1)) { 
    childNodes += selectedArray[i]; 
     } 
    } 

现在这一切工作除了一个问题很大的条件的对象,childNodes出来是这样的: "[object Object][object Object]"

我是Javascript新手,我整天都在用谷歌搜索如何将它转换为与selectedArray相同的格式。我甚至没有成功解析这些对象,因为我发现大多数示例都需要对这些对象进行访问。但是,如果我这样做,我可以拉出个别值作为字符串:childNodes += selectedArray[i].name;

但对我来说这是不够好,因为我的代码下一块使用filter并希望看到相同的格式,即两个数组:

var filtered=selectedArray.filter(function(e){return this.indexOf(e)<0;},childNodes); 

有什么建议? TKS!

回答

4

childNodes是一个数组,但您使用字符串连接。您应该将对象推到阵列上

childNodes.push(selectedArray[i]); 
+0

从现在开始,[对象对象]应该是一个告诉你的迹象,因为有些事情是不对的! ......除非那真的是你所期待的。 – chazsolo

相关问题