Olá, me deparei com um problema que não sei bem como resolver…
Tenho que gerar uma página com uma árvore através de javascript. Pensei em gerar ela com array de array. Por exemplo:
[code]elements[‘root_1’] = new Array();
elements[‘root_1’][‘indice_1’] = new Array();
elements[‘root_1’][‘indice_2’] = new Array();
elements[‘root_1’][‘indice_1’][0] = ‘valor_1’;
elements[‘root_1’][‘indice_2’][0] = ‘valor_2’;[/code]
root_1 -> indice_1 -> 0 = valor_1
root_1 -> indice_2 -> 0 = valor_2
Preciso mostrar em tela como uma árvore, mas não sei como percorrer pois a profundidade deste array é variável…
Se alguém souber como fazer isto… ou se conhecer uma estrutura melhor…
Obrigado!

Ué, use uma árvore. Declare os nós da árvore como tendo:
- valor
- um array, com os filhos
- um referência para o nó pai
Se quiser os arrays, pegue os valores dos length de cada array e construa a estrutura que precisa
Não sei se voces sacaram… acho que não fui muito claro
Não quero o tamanho do array, e sim a profundidade, por exemplo:
[code]arr[0] = new Array();
arr[0][0] = new Array();
arr[0][1] = new Array();
arr[0][0][0] = new Array();
arr[0][0][1] = new Array();
arr[0][0][0][0] = ‘lalala’;
arr[0][0][0][1] = ‘lelele’;[/code]
Como chegar em arr[0][0][0][0] por exemplo, sem saber que tenho que usar 4 ‘for’? Algo muito dinâmico que se adapte a quantos array vierem…
Valeu!
E como pretende criar arrays dinamicamente, desta forma? Com switch/case?
Isso é totalmente sem noção, na minha concepção. Mas se acha que vai funcionar, boa sorte…
Não disse que vou fazer, disse que os dados podem chegar assim…
Só tenho que exibir… ¬¬
É, para chegar assim eles terão que vir de algum lugar…
Documentação é mato, pelo que vejo… Nenhum analista em sã consciência permitiria isso, se soubesse o mínimo de análise.
Então está bem cara…
Deixe alguém que saiba responder ou dar alguma ideia… 
A árvore PRECISA ter essa estrutura que você colocou? Ou é só uma ideia que você teve?
Se não precisa, faça como o rmendes08 indicou.
Feito isso, basta usar recursão para percorrer todos os nós.
Como já mencionado, com recursão você pode resolver o problema facilmente. Crie uma função que checa se o objeto recebido é array, se for você itera e chama a função para cada elemento do array… algo assim:
function print(obj) {
if (isArray(obj)) {
for (var i = 0; i < obj.length; i++) {
print(obj[i]);
}
} else {
console.log(obj);
}
}
Esta função deve passar por todos os elementos, agora você ajusta pra tua lógica. Precisa criar o método isArray também, é simples, fica por sua conta!
[quote=darlanmoraes]Então está bem cara…
Deixe alguém que saiba responder ou dar alguma ideia…
[/quote]
EHUEHEUEHUHEUEHUEHUEHUEEHEUEHEUEHEUEHEUEHEUEHEUEEHEUEHEUHEEUHUE
OLD BUT GOLD