JavaScript - array con numeros aleatorios sin repeticion

 
Vista:
sin imagen de perfil
Val: 4
Ha aumentado su posición en 9 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

array con numeros aleatorios sin repeticion

Publicado por Guillermo (2 intervenciones) el 08/10/2016 18:33:05
No consigo quitar las repeticiones, se que va con .push o .splice pero no se me ocurre

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function imprimir1aNA(min, max) {
 
	arraynum= new Array(max);
 
	if(max>0){
 
		for(var i=1 ; i<=max ; i++){
 
	     var numaleatorio=Math.floor(Math.random() * (arraynum.length+1));
 
		 document.write(arraynum[i]=numaleatorio);
		 document.write('<br>');
 
		}
 
	}
 
}
 
imprimir1aNA(0,5);
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip
Val: 553
Bronce
Ha aumentado 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

array con numeros aleatorios sin repeticion

Publicado por kip (107 intervenciones) el 08/10/2016 23:50:28
Hola, he modificado tu funcion:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function imprimir1aNA(min, max) {
		if(max>0){
			var rept = 0;
			var end = 0;
			arraynum = [];
			while (rept != -1){
				for(var i=1 ; i<= max ; i++){
			    	var numaleatorio = Math.floor(Math.random() * (max+1));
					if (arraynum.indexOf(numaleatorio) < 0 && numaleatorio != 0) {
						document.write(numaleatorio + '<br>');
						arraynum.push(numaleatorio);
						end++;
					}
					end == max ? rept = -1 : false ;
				}
			}
		}
	}

Si te fijas no hice lo que hacias con respecto a crear un nuevo indice y valor al array arraynum en cada iteracion, mas bien cree una condicion para ver si en aquel array existe el numero aleatorio generado y de esa forma se escribira en pantalla y ademas se almacenara este numero en el array para que asi en una nueva evalucion de si existe o no el numero aleatorio en el array este que fue generado no permita generarlo de nuevo !

Para almacenar todo el rango de numeros que se envian a la funcion use el bucle while y solo en caso de que la variable end (esta variable se autoincrementara cada vez que se muestre por pantalla el numero no repetido) sea igual a max que es el valor maximo enviado a la funcion.

Espero me hayas entendido, he tratado no modificar mucho tu funcion para no confundirte.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 4
Ha aumentado su posición en 9 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

array con numeros aleatorios sin repeticion

Publicado por Guillermo (2 intervenciones) el 09/10/2016 04:04:47
Muchas gracias, voy ha echarle un vistazo. Estoy liadillo con algun ejercicio de fechas que no consigo darle formato, por si puedes ayudarme.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar