У меня есть массив JSON с вложенными элементами, я пытаюсь распечатать вложенный неупорядоченный список, , похоже, работает, но возвращает только последнюю версию. Я предполагаю, что это потому, что я объявляю returnstring внутри рекурсивной функции, поэтому она просто перезаписывает ее. Но как еще вы можете это сделать? Если я использую глобальную переменную, возникает такая же проблема. Если я попытаюсь объединить строку, я могу видеть их всех, но несколько раз.Последняя запись в рекурсивной функции
var tree = [{"menu":"A01","parent":"","desc":"HOME"},{"menu":"A02","parent":"","desc":"PREFERENCES","children":[{"menu":"A03","parent":"A02","desc":"Themes"}]},{"menu":"A04","parent":"","desc":"Configure","children":[{"menu":"A05","parent":"A04","desc":"Forms"},{"menu":"A06","parent":"A04","desc":"Users","children":[{"menu":"A07","parent":"A06","desc":"Groups","children":[{"menu":"A08","parent":"A07","desc":"Exit"},{"menu":"A09","parent":"A07","desc":"Restart VS"}]}]}]}];
var endMenu =getMenu(tree);
var retStr ="";
function getMenu(nodes){
nodes.map(function(nodem){
var subMenu = "";
if(typeof nodem.children !="undefined"){
nodem.children.some(function(childNode){
if(childNode.parent == nodem.menu)
subMenu='<ul>'+ getMenu(nodem.children) + '</ul>'
});
}
retStr = '<li>'+nodem.desc + subMenu + '</li>' ;
});
return retStr;
}
$('#menu').html('<ul>'+endMenu+ '</ul>');
У меня есть http://jsfiddle.net/LqES7/73/ для махинаций с
Вот как у меня есть текущая скрипка, но затем я получаю вещи, как выход, выход, перезагрузка, выход, перезапуск , группы, выход, перезапуск, группы, пользователи – Jaynesify