Introduction

Soit un tableau [1,2,3] qu'on veut transformer en [[3], [2], [1]].

Fonctionnel

function MakeArray(a) {return [a]; }

var array = [1,2,3];
var working_arrays = array.reverse().map(MakeArray);

Procédural avec while

var array = [1,2,3]
var working_arrays = [];
var next_item;
while(array.length > 0) {
  next_item = array.pop();
  working_arrays.push([next_item]);
}

Conclusion

Même si le while détruit le tableau d'origine, il est quand même plus rapide que le map() selon le test de rapidité sur : jsperf (2014-12-31). Cependant, le fonctionnel me semble beaucoup plus claire à lire.