Ir para conteúdo

POWERED BY:

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...

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por 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.
       
       
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.