我有以下树形结构:
var struct = {
name: 'folder1',
type: 'folder',
children: [
{
name: 'child1',
type: 'child',
children: []
},
{
name: 'child2',
type: 'child',
children: []
},
{
name: 'folder2',
type: 'folder',
children: []
},
{
name: 'folder3',
type: 'folder',
children: [
{
name: 'child3',
type: 'child',
children: []
}
]
}
]
};
我希望得到一个儿童文件夹的地图,但没有任何嵌套的孩子。
对于上面的结构,对于folder1,我应该只获得child1
,child2
,folder2
和folder3
,而不是嵌套在最后{{1}内}}
我该怎么做?
现在我有以下代码:
child3
它有效,但它让我得到了所有嵌套元素。
EDIT。
var getMap = function (data, map) {
var elements = document.createDocumentFragment();
for (var i in data) {
var nameId = data[i].name.split(' ').join('');
if (data[i].type == "child") {
var element = something;
} else {
var element = somethingElse;
}
elements.appendChild(element);
if (data[i].type === "folder") {
var element = createMainElement(getMap(data[i].children, map));
map[data[i].id] = element.innerHTML;
elements.appendChild(element);
}
}
return elements;
};
这是小提琴 - folder1不应该在控制台日志中包含child3。
答案 0 :(得分:0)
循环你的“struct”var的children属性,你只能得到第一级的孩子
struct.children.forEach(function(child){
console.log(child.name)
});
希望这有帮助。