Hay varias cosas del código que no entiendo, a ver si me lo puedes explicar XD
1.- unshift() añade elementos al inicio del array, ¿para qué le añades dos 0?
2.- Vuelvo a toparme con apply... 

 XD ¿Qué es exactamente lo que hace esa línea?
3.- Resuelta 

Saludos (: