Je ne suis pas sûr comment j'examinerais et créerais la condition de coupure pour cette fonction récursive. Au moment où la fonction gèle le navigateur (semble boucle indéfiniment). Je tente de générer une série de listes non ordonnées imbriquées en fonction des données fournies dans l'objet liste.Javascript la condition de coupure pour la fonction récursive itérant sur JSON
Voici le violon: 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;
}
Le résultat final est censé être le suivant:
<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>
s'il vous plaît ajouter le résultat souhaité. –
est-ce une structure de données donnée ou pouvez-vous le modifier un peu pour grouper le même niveau à un seul tableau? –
la structure ne peut pas changer – GRowing