miércoles, 3 de diciembre de 2008

Trabaja como Ninja Javascript

Imagino que a estas alturas todos conocen el mensajero instantáneo meeb.oO, un mensajero versión Web, que es compatible con la mayoría de los sistemas de mensajería instantánea.

Desde que salió se mostró muy novedoso, porque fue de los primero servicios que explotaban AJAX en todo su esplendor ... haciendo prácticamente su propio manejador de ventanas dentro de una ventana del navegador.

Inmediatamente quise ver cómo estaba hecho Meebo, y al revisar su código, había un comentario dentro de la programación donde te invitaban a enviar tu curriculum vitae a la dirección secretjobs de meebo.com.

Más recientemente encontré que tiene una sección de ofertas de empleo y donde anuncian que solicitan un "javascript engineer (javascript ninja)" y ahí mismo te dejan un breve cuestionario para medirte un poco y ver si tienes madera para el puesto. Son tan sólo 5 preguntitas y yo sólo pude medio contestar una, la 4:

4. Write a one-line piece of JavaScript code that concatenates all strings passed into a function:


function concatenate(/*any number of strings*/) {
var string = /*your one line here*/
return string;
}

Y esta es mi solución, que quizá no sea lo que esperaban, pero lo hace :D

function concatenate() {
for (var string='',i=0; i < arguments.length; string+=arguments[i++]);
return string;
}


Si pueden contestar las otras cuatro preguntas quizá les interese mudarse a Mountain View a tirar algunas patadas.

3 comentarios:

Oscar Islas L. dijo...

si, sinceramente creo que está muy chafa, pero antes de que me digan intenté hacer algo más elegante usando el método join() de los arreglos, sin embargo arguments no es un arreglo, es un Object y no supe como hacer un cast.

Memo dijo...

excelente entrada óscar, oye tu solución me parece buena, no está mal.
Las otras preguntas están bien locas, acaso hay secretos que javascript nos esconde. Está super loco ese test, solo de expertos en javascript y dom sin lugar a dudas.

panino dijo...

function concatenate(/*any number of strings*/) {
var string = [].slice.call(arguments).join(' ');
return string;
}