Jump to content
Rafael da Silveira

Percorrer array multdimensional sem index

Recommended Posts

Bom dia, tudo bem?

Quem puder me ajudar com um problema...

Tenho o seguinte array...

[
	'Entradas':[
		'Receitas Operacionais':[
			0:'Vendas',
  			1:'Serviços'
		],
  		'Receitas financeiras':[
        	0:'Rendimentos'
        ]
	],
    'Saidas':[
      	'Despesas comerciais':[
    		0:'Comissões',
      		1:'Combustivel',
      		2:'Publicidade'
    	],
    	'Despesas operacionais':[
        	0:'Matéria Prima',
      		1:'Fretes',
        ]
    ]
]

Como posso percorrer seus filhos, visto que as primeiras camadas não tem index...
A ideia é criar em HTML um menu arvore de acordo com essas informações...

A segunda e terceira camada, podem ser editadas pelo usuário, então precisa ser dinâmico...

Share this post


Link to post
Share on other sites

Rapaz!!

Espero que ajude, veja que acessei qualquer valor para criar uma mensagem de console exibindo cada qual:

var objeto = {
    'Entradas': {
        'Receitas Operacionais': {
            0: 'Vendas',
            1: 'Serviços'
        },
        'Receitas financeiras': {
            0: 'Rendimentos'
        }
    },
    'Saidas': {
        'Despesas comerciais': {
            0: 'Comissões',
            1: 'Combustivel',
            2: 'Publicidade'
        }
    },
    'Despesas operacionais': {
        0: 'Matéria Prima',
        1: 'Fretes'
    }
};

var objA = 0,
    objB = 0,
    objC = 0,
    subObjetoA = [],
    subObjetoB = [],
    mensagemTeste = '';

for (objA in objeto) {
    mensagemTeste = objA + ' = [';
    subObjetoA = objeto[objA];
    for (objB in subObjetoA) {
        subObjetoB = subObjetoA[objB];
        if (typeof subObjetoB === 'object') {
            mensagemTeste += '\n\t' + objB + ' = [';
            for (objC in subObjetoB) {
                mensagemTeste += '\n\t\t' + subObjetoB[objC] + ', ';
            }
            mensagemTeste += '\n\t],';
        } else {
            mensagemTeste += '\n\t' + subObjetoB + ', ';
        }
    }
    mensagemTeste += '\n]';
    console.log(mensagemTeste);
}

Não é por nada não eim, mas se vai usar javascript para compilar html está metendo os pés pelas mão, javascript só deve ser usado no html para manipulação de conteúdo já carregado, por intermédio de uma ação executada pelo usuário. E não para o carregamento.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Rafael Soares de Almeida
      Caros mestres do Java Script, estou tentando aprender como funcionar Matriz(Array) no JavaScript. Gostaria de inserir o nome do funcionário na linha e o cargo do funcionário na coluna, e imprimir na seguinte ordem Nome do funcionário e depois cargo do funcionário. No arquivo .js, tenho o seguinte código:
      var funcionarios = [][], indiceLinha, indiceColuna; No arquivo index.html, tenho o seguinte código:
      <!DOCTYPE html> <html lang="pt-BR"> <head>     <meta charset="utf-8" />     <title>Aprendendo Algoritmos com JavaScript</title> </head> <body>     <script src="scripts/aplicativo_021.js"></script>         <script>                 for (indiceLinha = 0; indiceLinha < 2; indiceLinha++)         {             funcionarios[indiceLinha] = (prompt("Digite o Nome do Funcionário:"));             for (indiceColuna = 0; indiceColuna < 2; indiceColuna++)             {                                     funcionarios[indiceColuna] = (prompt("Digite o Cargo do Funcionário:"));                 funcionarios[indiceLinha] = (prompt("Digite o Nome do Funcionário:"));             }         }                              for (indiceLinha = 0; indiceLinha < 2; indiceLinha++)                 {             for (indiceColuna = 0; indiceColuna < 2; indiceColuna++)             {                             document.write("Nome do Funcionário " + funcionarios[indiceLinha] + "\n");                 document.write("<br>");                 document.write("Cargo do Funcionário " + funcionarios[indiceColuna] + "\n");                 document.write("<br>");             }         }     </script> </body> </html> Onde estou errando? Já tentei de várias formas e não consegui. Quem puder ajudar, agradeço muito de antemão.
       
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.