Ir para conteúdo

POWERED BY:

Arquivado

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

fekz

Script que inverte arrays

Recommended Posts

Tenho que fazer um script que troca os arrays da frente pelos do fim.

 

fiz o seguinte:

 

CODE
<html><head><script>troca = new Array()troca[0] = 5troca[1] = 10troca[2] = 15troca[3] = 20troca[4] = 25for (i=0; i< troca.length; i++){document.write(troca + "<br />");}document.write("<br /><br />")j=4; for(i=0; i<5; i++){troca = troca[j]j--;document.write(troca + "<br />")}</script></head><body></body></html>

Acontece que não sei porque, quando chega na 3 posicao, quando faltam mais duas, ele copia as duas primeiras, podem testar.

 

os valores são: Array(5, 10, 15, 20, 25)

ai ele está invertendo assim:

25

20

15

20

25

 

Quando coloquei:

j=4 // quantidade de posições

for(i=0; i<5; i++){ // I começa no 0, vai até 4, soma 1.

troca = troca[j] /* Posição I do array, recebe o valor da posição J do array, por exemplo, I = 0, J = 4, 5 vira 25... I = 1, J =3, 10 vira 20, I = 2, J = 2, 15 fica 15, I = 3, J = 1, 20 vira 10, I = 4, J = 0, 25 vira 5... Acontece que não sei porque quando chega I = 3 e J = 1 ele repete os valores... */ Alguem ajuda?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Trabalho de faculdade?

 

Solução:

a = [10,5,15,6,11]

Array.prototype.inversao = function(){
var swap = [];
	for(x = 0, y = this.length-1; y > -1; x++, y--){
		swap[x] = this[y];
	}
	return swap;
}

alert(a.inversao());

Compartilhar este post


Link para o post
Compartilhar em outros sites

<html>
<head>
<script>
numero = new Array()
posicoes = prompt("Digite a quantidade de posições no Array");


if(posicoes%2!=0){
for(i=0; i < posicoes; i++){
numero[i] = prompt("Digite o valor do Array " +i);
document.write(numero[i] + "<br />");
}
j = posicoes - 1;
document.write("<br /><br />")

for(i=0; i<posicoes/2; i++){
auxiliar = numero[j];
numero[j] = numero[i];
numero[i] = auxiliar;
document.write(numero[i] + "<br />");
j--
}

i = ((posicoes-1)/2)+1;
j = posicoes-1;
for(i=((posicoes-1)/2)+1; i<=j; i++){
document.write(numero[i] + "<br />");
}
}
else{
for(i=0; i < posicoes; i++){
numero[i] = prompt("Digite o valor do Array " +i);
document.write(numero[i] + "<br />");
}
j = posicoes - 1;
document.write("<br /><br />")

for(i=0; i<posicoes/2; i++){
auxiliar = numero[j];
numero[j] = numero[i];
numero[i] = auxiliar;
document.write(numero[i] + "<br />");
j--
}

i = (posicoes/2);
j = posicoes-1;
for(i=(posicoes/2); i<=j; i++){
document.write(numero[i] + "<br />");
}
}
</script>




</head>
<body>
</body>
</html>

Deu assim.

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.