Breaking Bad
ProgramaciónProcesar una cadena de números
La semana pasada recibíamos un reto desde Alburquerque, en Nuevo México (EEUU). El mismísimo Walter White necesitaba que le echáramos una mano con los códigos de las bolsas de meta azul que iban a traficar y que os contábamos en esta entrada.
Enunciado del reto:
El reto decía:
Señorita Ada:
A partir de una lista de códigos de bolsas de meta azul queremos identificar cuál es “diferente” a las demás: si las demás son pares, cuál es la impar; y viceversa.
Dispondrá de una CADENA de códigos y deberá mostrarnos cuál de ellos no se corresponde con el resto.
Ejemplo de entrada: “1234 2345 3456 1358 2360 2246 8088”
Ejemplo de salida: 2345
Nota: solo habrá una bolsa “diferente”, por lo que validar esa información no es necesario.
Y una vez más dimos con, al menos, dos maneras de resolverlo:
- La primera, en la que almacenamos en dos arrays (pares e impares) los números recorriendo uno a uno los elementos de la lista dada y comprobando cuál de los dos arrays contiene un único elemento.
- La segunda, del estilo a la anterior pero mucho más compacta, y que utiliza la función filter() de Javascript:
Pero recordad, ¡no hay una única solución al problema; hay soluciones mejores y soluciones peores!
¿Qué aprenderás en el vídeo?
En este vídeo veremos:
- Cómo transformar una cadena de texto en un array utilizando la función split().
- Cómo insertar elementos en un array con Javascript utilizando la función push().
- Un ejemplo práctico de uso del operador ternario (? :).
- Y por último, cómo trabajar con la función filter() para convertir un array en otro con una serie de elementos que cumplen con una condición (¡ojo, utilizamos una función arrow).
Vídeos y código fuente
¡¿A qué esperas?! ¡Echa un ojo al vídeo!
Código fuente de la solución
[/not_logged_in]
¿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…