Ir para conteúdo

POWERED BY:

Arquivado

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

ZecaLoteiro

Problemas com Arrays

Recommended Posts

Olá alguém poderia me ajudar ?

 

Estou com um problema, preciso embaralhar uma array, eu até tenho um código pra isso, porém se eu uso o código, não consigo mais usar os valores como númericos.... higi, tipo assim, se meu array original tem os numeros { 1, 2, 3 } eu até embaralaho e fica { 3, 1, 2 } porém se eu tentar fazer array[0] + 2, eu tenho como resultado undefined.

 

Alguém poderia me ajudar a embalhar o array para que eu consiga utilizar o conteúdo como número ?

 

Segue abaixo a função que uso para embaralhar:

 

CODE
//============== EMBARALHAR ===============//

function embaralha(lista:Array):Array {

var novo:Array = new Array();

var ale:Number;

while (lista.length>0) {

ale = Math.round(Math.random()*(lista.length-1));

novo.push(lista.splice(ale, 1));

}

return novo;

}

//==========================================//

 

Alguém pode me ajudar ?

Thanx !

 

Opa, tenho uma outra dúvida....

 

Qual é a diferença entre:

 

var cod:Array = new Array (1,2,3)

e

var cod:Array = [1,2,3]

 

Pq dependendo do jeito q eu declaro, eu consigo ou não fazer algumas operações.

 

 

Ajda aee. plz !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sorry...

Malz ae, esqueci de postar, utilizo Flash 8 , AS 2.0

Alguma solução ??!?

 

 

Valew...

Obrigado pela resposta e pela atenção...

Thanx !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo fiz um algoritmo bem simples aqui so pra ilustrar o funcionamento.

 

var vetor1:Array = new Array(1,2,3,4,5,6);
var vetor2:Array = new Array(); 
var str:Number;
for(i=0;i<vetor1.length;i++){
str=random(vetor1.length);
vetor2[i] = str;
trace(vetor2)
}
O que acontece é o seguinte na hora que você testar o codigo, podera aparecer "0" ai você vai se perguntar da onde veio esse "0", é por causa do metodo random() que ele retorna um valor de 0 a algum valor, entao pode ocorrer de ele retornar 0 na rearrumação do vetor, assim como pode nao ocorrer, tem um vetor 1 com valores pre definidos entao eu crio um segundo vetor que recebera o numeros desse vetor embaralhados e imprimo cada etapa do preenchimento do vetor.

 

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

o metodo do kisuke está até melhor

 

o uso da função array.push consome mais processamento do que instanciar um array no formato array[] = valor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oláa... valew pela força...

Mudei o algorítimo, pq ele não estava embaralhando, estava duplicando.. etc...

 

Valew mesmo pela força....

 

segue a função:

 

 

var lista1:Array = new Array(1,2,3,4,5,6)

lista1 = embaralha(lista1)

 

function embaralha(lista1:Array):Array {
	var lista2:Array = new Array();
	var str:Number;
	for (i=lista1.length; i>=lista1.length; i--) {
		str = random(lista1.length);
		lista2[i-1] = lista1[str];
		lista1.splice(str, 1);
	}
	return lista2;
}

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.