2016-05-12 10 views
8

Come implementare qualcosa come il metodo Array unshift() in modo che crei un nuovo array? Fondamentalmente qualcosa come il metodo Array concat(), ma invece di posizionare il nuovo oggetto alla fine, posizionarlo all'inizio.Array JavaScript unshift() in modo immutabile

+1

push() aggiunge fino alla fine. concat() può aggiungere all'inizio o alla fine, a seconda di come lo chiami ... puoi sempre 'origArr.slice(). doSomethingMutative()' anche ... 'old.concat (newer)' vs 'newer. concat (old) ' – dandavis

+0

Grazie! Verificherò .. EDIT: intendevo chiedere di non cambiare, mi dispiace per quello. –

+1

tutt'altro che stupido, è una domanda decente ... – dandavis

risposta

14

È possibile farlo utilizzando il metodo .concat se lo si chiama su una serie di elementi che si desidera mettere nella parte anteriore del nuovo array.

di lavoro Esempio:

var a = [1, 2, 3]; 
 
var b = [0].concat(a); 
 
console.log(a); 
 
console.log(b);

In alternativa, in ECMAScript 6 è possibile utilizzare il spread operator.

lavoro Esempio (richiede browser moderno):

var a = [1, 2, 3] 
 
var b = [0, ...a]; 
 
console.log(a); 
 
console.log(b);