我不確定如何檢查併爲此遞歸函數創建中斷條件。目前該功能凍結瀏覽器(似乎無休止地循環)。Javascript迭代JSON的遞歸函數的中斷條件
我想根據列表對象中提供的數據生成一系列嵌套的無序列表。
這裏是小提琴:https://jsfiddle.net/mzckoc7s/
var list = {
"primary": [{
"item": "item 1"
}, {
"item": "item 2",
"secondary": [{
"item": "item secondary 1"
}, {
"item": "item secondary 2"
}, {
"item": "item secondary 3",
"secondary": [{
"item": "item inner secondary 1"
}]
}]
}, {
"item": "item 3"
}]
}
function items(obj) {
var output = '<ul>';
for (i = 0; i < obj.length; i++) {
output += '<li>' + obj[i].item + '</li>';
if (typeof obj[i].secondary != 'undefined') {
items(obj[i].secondary);
break;
}
}
output += '</ul>';
return output;
}
最後的結果應該是這樣的:
<ul>
<li>item 1</li>
<li>item 2
<ul>
<li>item secondary 1</li>
<li>item secondary 2</li>
<li>item secondary 3
<ul>
<li>item inner secondary 1</li>
</ul>
</li>
</ul>
</li>
<li>item 3</li>
</ul>
請添加想要的結果。 –
它是一個給定的數據結構還是可以將其稍微更改一下以將同一級別分組爲僅一個數組? –
結構不能改變 – GRowing