2016-11-16 95 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