2
我有以下結構:以上結構遞歸迭代
var struct = [{
"name": "Name1",
"type": "type1",
"children": [{
"name": "Name11",
"type": "type1",
"children": [{
"name": "Name111",
"type": "type1"
},
{
"name": "Name112",
"type": "type2"
}
}]
}]
}];
欲遍歷所有名稱型元件,其中類型是等於type1
併爲他們中的每一個的<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;
};
但是它給了我錯誤的結果。可能效率很低。我應該如何正確地做到這一點?
酷,它的工作原理。問題是它會比遞歸方法更快。 – user99999
它是遞歸的,在這一行:'Array.isArray(a.children)&& a.children.forEach(iter);' –