Я пытаюсь создать своего рода рекурсивную функцию синтаксического анализа, но она не работает должным образом.Рекурсивная функция «разбора» в javascript
Массив должен быть проанализирован:
gridArray = [
{
type:"row",
text:"row1",
cols: [
{
type:"col",
text:"col1",
rows: [
{
type:"row",
text:"row1 nested",
cols: [{}]
}
]
},
{
type:"col",
text:"col2",
rows: [{}]
}
]
}
]
Функция:
function createHtmlCode(gridArray,level){
for(var y=0; y<gridArray.length; y++){
obRow = gridArray[y];
r+="<div class='row'>";
arCol = obRow.cols;
for(var x=0; x<arCol.length; x++){
obCol = arCol[x];
r+="<div class='col'>";
if(obCol.rows){
createHtmlCode(obCol.rows,level++);
}
r+="</div>";
}
r+="</div>";
}
}
r="";
createHtmlCode(gridArray,1);
На данный момент результат (г):
<div class="row">
<div class="col">
<div class="row">
<div class="col">
</div>
</div>
</div>
</div>
... но Шоуде до:
<div class="row">
<div class="col">
<div class="row">
<div class="col">
</div>
</div>
</div>
<div class="col">
<div class="row">
</div>
</div>
</div>
Что я делаю неправильно? Благодарим вас за советы!
Вы не можете использовать 'уровень 'вообще. Почему у вас есть функция? – thefourtheye
Пронумерованный, предназначался для имен классов. @Malvolio: Спасибо! Вы гений :) – Schorsch
Возможно, вы захотите рассмотреть [принятие одного из ответов] (http://meta.stackexchange.com/a/5235/235416) :-) – thefourtheye