JavaScript - emparejar de forma aleatoria cada elemento de las dos listas

 
Vista:
sin imagen de perfil
Val: 22
Ha aumentado 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

emparejar de forma aleatoria cada elemento de las dos listas

Publicado por Paula (15 intervenciones) el 15/05/2021 16:26:20
Hola! Tengo una pequeña duda al final del ejercicio que no sé cómo es,
El ejercicio me pide:
Hacer un código que pida dos listas al usuario, que deberá aclarar como separa los elementos
en la lista, (con como, punto y como…).
Después el programa deberá emparejar de forma aleatoria cada elemento de la primera lista
con otro elemento de la segunda lista. Se debe comprobar que las dos listas son del mismo
tamaño, y en caso contrario avisar al usuario.
El resultado se debe ver en pantalla ordenado en tablas bien colocadas.
—Hasta ahí todo bien, lo único que me falta es que me empareje un elemento de la primera lista con un elemento de la segunda lista, y lo haga de manera vertical.
Este es el código que tengo:
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
<!DOCTYPE html>
<html>
<head>
 
</head>
<body>
	<script>
        intercalarDosArrays = (a1, a2) => {
            let [l, s]=a1.length > a2.length ? [a1, a2] : [a2, a1];
            return Array.from({length: l.length*2}).map((_, i) => i%2==0 ? l[i/2] : s[Math.ceil(i/2)-1]).filter(el => el);
        };
 
        var lista1 = prompt("introduce primer array separando los valores por comas");
		var lista2 = prompt("introduce segundo array separando los valores por comas");
        l1=lista1.split(",");
        l2=lista2.split(",")
        if (l1.length!=l2.length) {
            document.write("Las listas proporcionadas son diferentes");
 
        } else {
            document.write("<table BORDER>");
                document.write("<tr>");
                    document.write("<td>");
                        document.write(intercalarDosArrays(l1, l2).join("</br><br>"));
				   document.write("</td>");
                document.write("</tr>");
            document.write("</table>");
		}
	</script>
 
</body>
</html>
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 joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

emparejar de forma aleatoria cada elemento de las dos listas

Publicado por joel (895 intervenciones) el 16/05/2021 09:38:50
Hola Paula, la verdad es que no me queda claro como tiene que quedar el resultado...

Si el usuario en la lista 1 tiene [1,2,3]
y en la lista 2 tiene [5,6,7]

Como se tiene que mostrar el resultado?
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
sin imagen de perfil
Val: 22
Ha aumentado 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

emparejar de forma aleatoria cada elemento de las dos listas

Publicado por Paula (15 intervenciones) el 16/05/2021 11:07:39
Hola! Que queden emparejados un número/letra de la lista 1 con un número /letra de la lista 2
Y así con todos, pero no juntos que es como a mi me sale.

Por ejemplo, con los tres números que tú has puesto, que saliera en tablas así:
1 6
2 7
3 5
Cada resultado, en una fila diferente
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
Imágen de perfil de joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

emparejar de forma aleatoria cada elemento de las dos listas

Publicado por joel (895 intervenciones) el 17/05/2021 10:35:35
segun entiendo, quieres algo así:

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
<!DOCTYPE html>
<html>
<head>
 
</head>
<body>
	<script>
        var lista1 = prompt("introduce primer array separando los valores por comas");
		var lista2 = prompt("introduce segundo array separando los valores por comas");
        var l1=lista1.split(",");
        var l2=lista2.split(",");
		var longitud = l1.length
 
        if (l1.length!=l2.length) {
            document.write("Las listas proporcionadas son diferentes");
        } else {
            document.write("<table border='1'>");
			for (i=0; i<longitud; i++){
				document.write('<tr>');
                    document.write('<td>' + l1[i] + '</td>');
                    document.write('<td>' + l2[i] + '</td>');
                document.write('</tr>');
			}
            document.write("</table>");
		}
	</script>
 
</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
Imágen de perfil de algoritmo
Val: 37
Ha aumentado su posición en 2 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

emparejar de forma aleatoria cada elemento de las dos listas

Publicado por algoritmo (29 intervenciones) el 16/05/2021 21:48:07
Hola

Espeor que te sirva :)

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
<!DOCTYPE html>
<html>
<head>
 
</head>
<body>
	<script>
        var lista1 = prompt("introduce primer array separando los valores por comas");
		var lista2 = prompt("introduce segundo array separando los valores por comas");
        var l1=lista1.split(",");
        var l2=lista2.split(",");
		var longitud = l1.length
 
		function aleatorio(lista){
			orden = Math.round(Math.random()*(lista.length-1));
			return lista.splice(orden, 1);
		}
 
        if (l1.length!=l2.length) {
            document.write("Las listas proporcionadas son diferentes");
        } else {
            document.write("<table BORDER>");
			var txt = '';
			for (i=0; i<longitud; i++){
				txt += '<tr>';
				txt += '<td>' + aleatorio(l1) + '</td>';
				txt += '<td>' + aleatorio(l2) + '</td>';
				txt += '</tr>'
			}
            document.write(txt);
            document.write("</table>");
		}
	</script>
 
</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