korifa,
 тоже самое, только на такт длиннее, за первый такт создатся пустой массив, но с полной длиной n , а не заполненый, как в примере выше там длина 1, и увеличивается по мере добавления.
function fn(n, arr)
   {
     arr ? (arr[--n]= n+1) : (arr = new Array(n));
     return n ?  fn(n, arr) : arr.join(" ")
   }
   alert(fn(7));