Vlady Veselinov Vlady Veselinov - 6 months ago 46
Javascript Question

JavaScript Array unshift() in an immutable way

How would you implement something like the Array unshift() method so that it creates a new array? Basically something like the Array concat() method but instead of placing the new item at the end, place it in the beginning.

Answer

You can actually accomplish this using the .concat method if you call it on an array of elements you want to put at the front of the new array.

Working Example:

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

Alternately, in ECMAScript 6 you can use the spread operator.

Working Example (requires modern browser):

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