Documentación offline JavaScript main

Array.prototype.shift()

main Documentación oficial Licencia CC-BY-SA-2.5Descargado el 2026-08-02

En esta página

The shift() method of {{jsxref("Array")}} instances removes the first element from an array and returns that removed element. This method changes the length of the array.

{{InteractiveExample("JavaScript Demo: Array.prototype.shift()")}}

```js interactive-example const array = [1, 2, 3];

const firstElement = array.shift();

console.log(array); // Expected output: Array [2, 3]

console.log(firstElement); // Expected output: 1

## Syntax

```js-nolint
shift()

Parameters#

None.

Return value#

The removed element from the array; {{jsxref("undefined")}} if the array is empty.

Description#

The shift() method shifts all values to the left by 1 and decrements the length by 1, resulting in the first element being removed. If the {{jsxref("Array/length", "length")}} property is 0, {{jsxref("undefined")}} is returned.

The {{jsxref("Array/pop", "pop()")}} method has similar behavior to shift(), but applied to the last element in an array.

The shift() method is a mutating method. It changes the length and the content of this. In case you want the value of this to be the same, but return a new array with the first element removed, you can use arr.slice(1) instead.

The shift() method is generic. It only expects the this value to have a length property and integer-keyed properties. Although strings are also array-like, this method is not suitable to be applied on them, as strings are immutable.

Examples#

Removing an element from an array#

The following code displays the myFish array before and after removing its first element. It also displays the removed element:

const myFish = ["angel", "clown", "mandarin", "surgeon"];

console.log("myFish before:", myFish);
// myFish before: ['angel', 'clown', 'mandarin', 'surgeon']

const shifted = myFish.shift();

console.log("myFish after:", myFish);
// myFish after: ['clown', 'mandarin', 'surgeon']

console.log("Removed this element:", shifted);
// Removed this element: angel

Using shift() method in while loop#

The shift() method is often used in condition inside while loop. In the following example every iteration will remove the next element from an array, until it is empty:

const names = ["Andrew", "Tyrone", "Paul", "Maria", "Gayatri"];

while (typeof (i = names.shift()) !== "undefined") {
  console.log(i);
}
// Andrew, Tyrone, Paul, Maria, Gayatri

Calling shift() on non-array objects#

The shift() method reads the length property of this. If the normalized length is 0, length is set to 0 again (whereas it may be negative or undefined before). Otherwise, the property at 0 is returned, and the rest of the properties are shifted left by one. The property at length - 1 is deleted, and the length property is decremented by one.

const arrayLike = {
  length: 3,
  unrelated: "foo",
  2: 4,
};
console.log(Array.prototype.shift.call(arrayLike));
// undefined, because it is an empty slot
console.log(arrayLike);
// { '1': 4, length: 2, unrelated: 'foo' }

const plainObj = {};
// There's no length property, so the length is 0
Array.prototype.shift.call(plainObj);
console.log(plainObj);
// { length: 0 }

Specifications#

{{Specifications}}

Browser compatibility#

{{Compat}}

See also#

  • Indexed collections guide
  • {{jsxref("Array")}}
  • {{jsxref("Array.prototype.push()")}}
  • {{jsxref("Array.prototype.pop()")}}
  • {{jsxref("Array.prototype.unshift()")}}
  • {{jsxref("Array.prototype.concat()")}}
  • {{jsxref("Array.prototype.splice()")}}