Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

pdgon

Usando um looping

Recommended Posts

Boa tarde, estou tentando usar o gráfico do Highcharts em minha aplicação rails e gostaria de saber como usar um looping correto no meu javascript nesse caso:

Meu código:

series: [
	{name: 'Pedidos', colorByPoint: true,
		data: [
			{ name: ultimos_pedidos[0][1], y: ultimos_pedidos[0][0], drilldown: ultimos_pedidos[0][1] }, 
			{ name: ultimos_pedidos[1][1], y: ultimos_pedidos[1][0], drilldown: ultimos_pedidos[1][1] }, 
			{ name: ultimos_pedidos[2][1], y: ultimos_pedidos[2][0], drilldown: ultimos_pedidos[2][1] }, 
			{ name: ultimos_pedidos[3][1], y: ultimos_pedidos[3][0], drilldown: ultimos_pedidos[3][1] }, 
			{ name: ultimos_pedidos[4][1], y: ultimos_pedidos[4][0], drilldown: ultimos_pedidos[4][1] }, 
			{ name: ultimos_pedidos[5][1], y: ultimos_pedidos[5][0], drilldown: ultimos_pedidos[5][1] }, 
			{ name: ultimos_pedidos[6][1], y: ultimos_pedidos[6][0], drilldown: ultimos_pedidos[6][1] }, 
			{ name: ultimos_pedidos[7][1], y: ultimos_pedidos[7][0], drilldown: ultimos_pedidos[7][1] },
			{ name: ultimos_pedidos[8][1], y: ultimos_pedidos[8][0], drilldown: ultimos_pedidos[8][1] }, 
			{ name: ultimos_pedidos[9][1], y: ultimos_pedidos[9][0], drilldown: ultimos_pedidos[9][1] }, 
			{ name: ultimos_pedidos[10][1], y: ultimos_pedidos[10][0], drilldown: ultimos_pedidos[10][1] }, 
			{ name: ultimos_pedidos[11][1], y: ultimos_pedidos[11][0], drilldown: ultimos_pedidos[11][1] }
		]
	}
],

Olha quanta coisa repetida, queria usar um looping, mas não sei como incluir as chaves juntas...

 

 

Preciso que ficassem algo desse tipo:

series: [
	{name: 'Pedidos', colorByPoint: true,
		data: [
                         for...{
                                { name: ultimos_pedidos[i][1], y: ultimos_pedidos[i][0], drilldown: ultimos_pedidos[i][1] },
                         }
		]
	}
],

Como eu posso fazer?


Obs:
Meu vetor ultimos_pedidos contém isso:

[[5,"Agosto"],[1,"Julho"],[147,"Junho"],[0,"Maio"],[0,"Abril"],[0,"Mar\u00e7o"],[0,"Fevereiro"],[0,"Janeiro"],[0,"Dezembro"],[0,"Novembro"],[0,"Outubro"],[0,"Setembro"]]

Compartilhar este post


Link para o post
Compartilhar em outros sites

data.push({ name: ultimos_pedidos[0][1], y: ultimos_pedidos[0][0], drilldown: ultimos_pedidos[0][1] });

 

data.push({ name: ultimos_pedidos[1][1], y: ultimos_pedidos[0][1], drilldown: ultimos_pedidos[1][1] });

 

..

 

e dai em diante, sendo que o próprio push poderia ficar dentro do loop.

O push adiciona itens em um array.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado William Bruno, consegui já fazendo da seguinte forma:

Chamei o loop antes da função do gráfico(highcharts)

var imprime_grafico_primeiro = [];
	for(var i = 0; i <= 11; i++){
		imprime_grafico_primeiro[i] =  {name: data.ultimos_pedidos[i][1], y: data.ultimos_pedidos[i][0], drilldown: data.ultimos_pedidos[i][1]};
	}

Depois chamei o vetor lá dentro

series: [
	{name: 'Pedidos', colorByPoint: true,
		data: imprime_grafico_primeiro
	}

Assim, ele substituiu tudo isso:

[
	{ name: ultimos_pedidos[0][1], y: ultimos_pedidos[0][0], drilldown: ultimos_pedidos[0][1] }, 
	{ name: ultimos_pedidos[1][1], y: ultimos_pedidos[1][0], drilldown: ultimos_pedidos[1][1] }, 
	{ name: ultimos_pedidos[2][1], y: ultimos_pedidos[2][0], drilldown: ultimos_pedidos[2][1] }, 
	{ name: ultimos_pedidos[3][1], y: ultimos_pedidos[3][0], drilldown: ultimos_pedidos[3][1] }, 
	{ name: ultimos_pedidos[4][1], y: ultimos_pedidos[4][0], drilldown: ultimos_pedidos[4][1] }, 
	{ name: ultimos_pedidos[5][1], y: ultimos_pedidos[5][0], drilldown: ultimos_pedidos[5][1] }, 
	{ name: ultimos_pedidos[6][1], y: ultimos_pedidos[6][0], drilldown: ultimos_pedidos[6][1] }, 
	{ name: ultimos_pedidos[7][1], y: ultimos_pedidos[7][0], drilldown: ultimos_pedidos[7][1] },
	{ name: ultimos_pedidos[8][1], y: ultimos_pedidos[8][0], drilldown: ultimos_pedidos[8][1] }, 
	{ name: ultimos_pedidos[9][1], y: ultimos_pedidos[9][0], drilldown: ultimos_pedidos[9][1] }, 
	{ name: ultimos_pedidos[10][1], y: ultimos_pedidos[10][0], drilldown: ultimos_pedidos[10][1] }, 
	{ name: ultimos_pedidos[11][1], y: ultimos_pedidos[11][0], drilldown: ultimos_pedidos[11][1] }
]

Mesmo assim, obrigado pela ajuda, provavelmente desse jeito também resolveria meu problema. Até logo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com o push, ficaria:

 

for(var i = 0; i <= 11; i++){
	imprime_grafico_primeiro.push({name: data.ultimos_pedidos[i][1], y: data.ultimos_pedidos[i][0], drilldown: data.ultimos_pedidos[i][1]});
}
=)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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