Halt and catch fire
ProgramaciónTemplate strings
Cameron Howe está más centrada que nunca en hacer crecer Mutiny. La primera comunidad online que en un futuro se convertiría en el IRC tiene cada vez más usuarios y ha pensado crear una especie de sistema de votaciones.
Nos ha contactado para pedir ayuda porque no está muy familiarizada con este tipo de funcionamiento de las redes sociales del futuro. Su mensaje decía así:
Veréis, Donna y yo necesitamos un sistema de votaciones que permitan que, cuando alguien publique algo en nuestra comunidad, el resto de usuarios puedan indicar que les gusta.
No queremos un simple contador de “me gustas”, si no que debería mostrarse lo siguiente:
– Si nadie ha indicado que le gusta, aparecerá el mensaje “Nadie ha dicho que le gusta esto”.
– Si una persona ha indicado que le gusta, “A -nombre- le gusta esto”.
– Si son dos personas, “A -nombre1- y -nombre2- les gusta esto”.
– Si son tres personas, “A -nombre1-, -nombre2- y -nombre3- les gusta esto”.
– Si son más de tres personas, “A -nombre1-, -nombre2- y a otros -numeropersonas- les gusta esto”.
No necesitamos que nos implementéis un botón o enlace para hacerlo funcionar. Simplemente una función que, al recibir una lista de nombres, nos devuelva el mensaje correspondiente. ¿Podríais ayudarnos?
Edu, una vez más, planteó sus ideas sobre el reto:
Con opciones tan concretas, hay poco código que repetir, ¿no? Además de utilizar un switch, ¿se te está ocurriendo la misma idea que a mi? ¿No crees que es el momento perfecto para utilizar Template Strings? Lo reconozco, Cameron y Donna son ídolos para mi 🙂
Y tenía razón, era el momento ideal de utilizar algo como las Template Strings… ¡pero también se podían utilizar opciones “clásicas“, ¿verdad?
¿Tú cómo lo harías? ¡Espero tus propuestas 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…
[…] Reto: Un contador de «Me gusta» para Mutiny […]