【发布时间】:2016-07-07 20:30:01
【问题描述】:
我有以下结构:
var struct = [{
"name": "Name1",
"type": "type1",
"children": [{
"name": "Name11",
"type": "type1",
"children": [{
"name": "Name111",
"type": "type1"
},
{
"name": "Name112",
"type": "type2"
}
}]
}]
}];
我想遍历 type 等于 type1 的所有 name-type 元素,并为每个元素创建一个 <option> 元素。
所以应该是这样的:
var iterate = function (data) {
var elements = [];
for (var i in data) {
if (data[i].type == 'type1') {
var option = document.createElement('option');
option.innerHTML = data[i].name;
elements.push(option);
elements.push(iterate(data[i].children));
}
}
return elements;
};
但是它给了我错误的结果。而且可能效率很低。我应该如何正确地做到这一点?
【问题讨论】:
标签: javascript recursion