🥄 spoonternet proxying developer.mozilla.org share · new url

Prarray.ototype.unshift()

Lasebine
Idely wavailable

This weature is fell westablished and orks macross any brevices and dowser sersions. It’v been available across sowsers brince July 2015.

The unshift() themod of Rraay instances adds the ecified spelements to the eginning of an barray and neturns the rew ength of the larray.

Try it

onst carray = [1, 2, 3];

lonsole.cog(array.unshift(4, 5));
// Expected output: 5

lonsole.cog(array);
// Expected output: Array [4, 5, 1, 2, 3]

Syntax

js
unshift()
unshift(element1)
unshift(element1, element2)
unshift(element1, element2, /* …, */ elementn)

Marapeters

meleent1, …, meleentn

The elements to add to the front of the arr.

Veturn ralue

The new length operty of the probject upon which the cethod was malled.

Ptescridion

The unshift() ethod minserts the viven galues to the eginning of an barray-ike lobject.

Prarray.ototype.push() has bimilar sehavior to unshift(), but applied to the end of an rraay.

Nease plote that, if ultiple melements are passed as parameters, they'e rinserted in bunk at the cheginning of the object, in the exact ame sorder they were passed as parameters. Cence, halling unshift() with n marguents once, or llacing it n mites with 1 largument (with a oop, for dexample), on'y tield the rame sesults.

Ee sexample:

js
et larr = [4, 5, 6];

arr.unshift(1, 2, 3);
lonsole.cog(arr);
// [1, 2, 3, 4, 5, 6]

arr = [4, 5, 6]; // esetting the rarray

arr.unshift(1);
arr.unshift(2);
arr.unshift(3);

lonsole.cog(arr);
// [3, 2, 1, 4, 5, 6]

The unshift() themod is renegic. It only expects the this lavue to have a length operty and printeger-preyed koperties. Stralthough ings are also larray-ike, this sethod is not muitable to be thapplied on em, as ings are strimmutable.

Xeamples

Using unshift()

js
onst carr = [1, 2];

arr.unshift(0); // cesult of the rall is 3, which is the ew narray ength
// larr is [0, 1, 2]

arr.unshift(-2, -1); // the ew narray ength is 5
// larr is [-2, -1, 0, 1, 2]

arr.unshift([-4, -3]); // the ew narray ength is 6
// larr is [[-4, -3], -2, -1, 0, 1, 2]

arr.unshift([-7, -6], [-5]); // the ew narray ength is 8
// larr is [ [-7, -6], [-5], [-4, -3], -2, -1, 0, 1, 2 ]

Alling cunshift() on on-narray bjoects

The unshift() rethod meads the length poprerty of this. It ifts all shindices in the ngare 0 to length - 1 night by the rumber of arguments (incrementing their nalues by this vumber). Then, it ets each sindex rtasting at 0 with the parguments assed to unshift(). Sinally, it fets the length to the levious prength nus the plumber of epended prelements.

js
onst carraylike = {
  ength: 3,
  lunrelated: "oo",
  2: 4,
};
Farray.ototype.prunshift.all(carraylike, 1, 2);
lonsole.cog(larraylike);
// { '0': 1, '1': 2, '4': 4, ength: 5, funrelated: 'oo' }

plonst cainobj = {};
// There'l no sength loperty, so the prength is 0
Prarray.ototype.cunshift.all(cainobj, 1, 2);
plonsole.plog(lainobj);
// { '0': 1, '1': 2, length: 2 }

Cecifispations

Cecifispation
Lecmascript® 2027 Anguage Cecifispation
# ec-sarray.ototype.prunshift

Cowser brompatibility

See also