我有一个名为selectedArray
的数组。这是一个对象数组,这里有一个示例:
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
。该循环查看名为lft
的相同构造数组的rgt
和nodesWithchildren
值。当它找到满足条件的对象时,我希望它将该对象拉出并创建一个名为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!
答案 0 :(得分:4)
childNodes
是一个数组,但您正在使用字符串连接。您应该将对象推送到数组上
childNodes.push(selectedArray[i]);