JavaScript - Problema con comparación de arrays en JavaScript

 
Vista:

Problema con comparación de arrays en JavaScript

Publicado por K4RM0 (1 intervención) el 21/04/2021 05:29:40
estoy realizando un curso de programación web full stack y me pide la siguiente consigna:

Escribí la función esPremioMayor la cual recibiendo dos arrays, el primero con los números sorteados y el segundo con los números que jugaste. La función debe devolver el texto "Ganaste" si y solo si los 6 números jugados son iguales a los números sorteados, no importa el orden en el que hayan salido, de lo contrario devolverá la frase "Seguí participando".

Por ejemplo:
1
2
3
4
// Si tuviese los siguientes dos arrays ...
let numerosSorteados = [ 12 , 4 , 40 , 33 , 13 , 17 ];
let numerosJugados = [ 4 , 12 ,13 , 17 , 33 , 40 ];
// ... y ejecutara mi función ...

1
2
3
esPremioMayor(numerosSorteados, numerosJugados);
 
// ... el resultado sería el siguiente: "Ganaste"

mi problema es que realice un codigo el cual al probarlo en la consola me da bien todos los datos, pero al pasarlo para que me corrija el trabajo me da los siguientes errores:

La función esPremioMayor ejecutada con los siguientes arrays: numerosSorteados [ 12 , 4 , 40 , 33 , 13 , 17 ] y numerosJugados [ 4 , 12 , 13 , 17 , 33 , 40 ] debería darnos como resultado la frase 'Ganaste'.

La función esPremioMayor ejecutada con los siguientes arrays: numerosSorteados [ 12 , 4 , 40 , 33 , 13 , 17 ] y numerosJugados [ 7, 19 , 22 , 36 , 41 , 42 ] debería darnos como resultado la frase 'Seguí participando'.

aqui les dejo mi codigo y agradeceria su ayuda :)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function esPremioMayor(numerosSorteados, numerosJugados){
  let conteo = 0;
  for (i = 0 ;i < numerosSorteados.length; i++)
{
for (f = 0; f < numerosJugados.length; f++)
{
if (numerosSorteados [i] == numerosJugados [f])
{
   conteo ++
}
}
}
  if (conteo == 6){console.log("Ganaste"); return true;}
    else{ console.log("Seguí Participando"); return false;}
 
}
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
sin imagen de perfil
Val: 59
Ha aumentado su posición en 2 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problema con comparación de arrays en JavaScript

Publicado por luis (22 intervenciones) el 22/04/2021 02:51:29
Hola K4RM0.

El programa es sencillo dado que sólo tendrías que hacer un doble bucle dónde compararías ambas matrices. Te dejo el fragmento de código que deberías colocar en una función:

1
2
3
4
5
6
valor=0;
for(i=0;i<6;i++)for(j=0;j<6;j++)
if(numerosJugados[j]==numerosSorteados[i]){valor++}
 
if(valor==6){alert('acertaste')}
else{alert('seguir participando')}


Esta rutina compara cada elemento de la primera matriz con la segunda, y si es coincidente pues suma a la variable "valor" que inicialmente tiene valor cero. Si los seis que jugados coinciden con los seis sorteados pues el valor de la variable será seis, luego se lanzará la alerta con el rótulo "acertaste". En caso de que no fuese coincidente algún elemento la suma no sería seis, luego se lanzaría la alerta con el rótulo "seguir participando".

Para complicar un poco más el tema he ideado el siguiente código donde en la matriz de "numeros sorteados" se añaden más números. Se crean dos matrices más con números jugados. Una que contiene seis números coincidentes con los sorteados (numerosJugadosA), y otra que contiene dos números no coincidentes (numerosJugadosB). Según pulses un botón u otro correspondiente a cada serie de números la función te lanzará una alerta de si es o no coincidente.

No tienes más que colocar dicho código en un txt, renombrarlo con la extensión html y ejecutarlo en el navegador.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<html>
 
<head>
<meta http-equiv="Content-Language" content="es">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>New Page 1</title>
</head><script language=javascript>
 
numerosSorteados =new Array(12,4,40,33,13,17,6,9,39,335,65);
numerosJugadosA =new Array(4,12,13,17,33,40); //la función comprobará que todos son coincidentes
numerosJugadosB =new Array(4,12,25,17,1,40); //la función comprobará que NO todos son coincidentes
 
valor=0;
function sorteoA(){
 
for(i=0;i<11;i++)for(j=0;j<6;j++)
if(numerosJugadosA[j]==numerosSorteados[i]){valor++}
 
if(valor==6){alert('acertaste')}
else{alert('seguir participando')}
valor=0;
}
 
 
function sorteoB(){
 
for(i=0;i<11;i++)for(j=0;j<6;j++)
if(numerosJugadosB[j]==numerosSorteados[i]){valor++}
 
if(valor==6){alert('acertaste')}
else{alert('seguir participando')}
valor=0;
}
 
</script>
 
<body >
 
<div style="position: absolute; width: 605px; height: 100px; z-index: 1; left: 203px; top: 92px" id="layer1">
	<table border="1" width="100%">
		<tr>
			<td width="226"><font face="Arial">Números sorteados</font></td>
			<td><font face="Arial">12,4,40,33,13,17,6,9,39,335,65</font></td>
		</tr>
		<tr>
			<td width="226"><font face="Arial">Números jugados A&nbsp; </font>
			<input type="button" value="jugar" name="B3" onclick="sorteoA()"></td>
			<td><font face="Arial">4,12,13,17,33,40 (todos coincidentes)</font></td>
		</tr>
		<tr>
			<td width="226"><font face="Arial">Números jugados B&nbsp; </font>
			<input type="button" value="jugar" name="B4" onclick="sorteoB()"></td>
			<td><font face="Arial">4,12,25,17,1,40&nbsp;&nbsp; (dos números no
			coincidentes</font></td>
		</tr>
	</table>
</div>
 
</body>
 
</html>
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