Harry Potter
ProgramaciónProcesar un array bidimensional
Una semana más recibimos un reto desde el mismo Colegio Hogwarts de Magia y Hechicería que titulamos “Gestión de pasajeros del expreso de Hogwarts“.
Enunciado del reto:
El reto decía:
Señorita Ada:
Necesitamos controlar el número de pasajeros que llegan al final de un trayecto teniendo en cuenta cuántos suben y bajan en cada parada.
Le facilitaremos una lista del tipo: [s1,b1][s2,b2][s3,b3]… donde en cada par de elementos va el número de pasajeros que se suben (s) y el número de pasajeros que se bajan (b). Así, procesando esa lista, sabremos el número de pasajeros finales que debería llegar a fin de trayecto.
Ejemplo de entrada: [[7,0][8,2][9,5][3,1]]
Ejemplo de salida: 19 pasajeros
* Nota: En el primer par de números, el segundo siempre será 0 porque en la estación de origen no se baja nadie. No hace falta controlar ese número: se lo facilitaremos siempre de manera correcta.
Para solventarlo se nos ocurrió hacerlo de dos maneras:
- Una clásica, que desde el punto de vista de la algoritmia es aplicable a la mayoría del resto de lenguajes de programación de alto nivel (Java, C, C++…).
- Otra propia de Javascript que utiliza una interesante función llamada reduce.
Pero recordad, ¡no hay una única solución al problema; hay soluciones mejores y soluciones peores!
¿Qué aprenderás en el vídeo?
Así que en este vídeo os explico:
- Cómo procesar un array bidimensional utilizando un bucle for.
- Cómo funciona la función reduce de Javascript para convertir un array en un único valor.
- Cómo trabajar con la función reduce y una función arrow pasándole el array de dos modos diferentes.
Vídeos y código fuente
¡Al lío! ¡Echa un ojo al vídeo!
Código fuente de la solución
¡Ups! Este contenido es solo para codelovers, ¿no te has registrado aún? ¡Hazlo ahora!¿Tú cómo lo habrías hecho? ¡Deja tus ideas en los comentarios!
Y si quieres compartir código, te recomiendo que utilices alguna herramienta online de testing de código como Codepen, JSFiddle, PlayCode, etc. o repositorios como GitHub, GitLab, BitBucket…
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.