Desafios en JavaScript, ronda 1

Sin intención de tener fines didácticos sino más bien lúdicos, recopilo 3 problemas para resolver en JavaScript.

Las soluciones están disponibles para quien quiera espiarlas, obviamente es recomendable intentar resolver los problemas antes :{D.

Problema 1

Crear una función autoejecutable que pinte en la consola los 100 primeros números sin utilizar ni bucles* ni condicionales**.

*Consideramos bucle a las sentencias for, for in, for each, while, do while y todos los métodos de iteración provistos por el objeto Array (forEach, map, reduce, etc).

**Consideramos condicional a las sentencias operadores booleanos, if, switch, operador ternario, try/catch.

Fuente

Este problema fue propuesto por @EtnasSoft como parte del temario de una reunión del grupo MadridJS: MadridJS – Reunion5.2011.09.01

Soluciones

@joseanpg recopiló distintas soluciones al problema por distintos programadores: ¿Podrías hacerlo sin if?.

Problema 2

Crear una función f tal que:

f('This ')('i')('s a sentence')() + f('123')() == 'This is a sentence123'

Fuente

Este problema es de autoría de @scinos, que hace mención del mismo en este twit.

Soluciones

La solución del autor del problema, y mi solución con un pequeño agregado.

Problema 3

Crear una función getMax(a, b), que recibe dos números como argumentos y debe devolver (obviamente) el mayor de ellos. No se pueden utilizar los operadores < , >, ==, != ni funciones nativas con funcionalidad similar (Math.max, Math.min).
Como segundo nivel, se resuelve el mismo problema sin utilizar condicionales ni bucles (aclaraciones similares al problema 1)

Fuente

Este problema fue publicado por Ernest Delgado en su blog personal: Ernest Delgado – JS Puzzle.

Soluciones

En el mismo blog, Ernest publica las soluciones que recibió (algunas de personajes ilustres en el mundo de JS): JS Puzzle Solution.

 


Shortlink: http://goo.gl/dwuz5




Discussion has just started! Join in...



Pings to this post


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Comment

You may use these tags : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>