Learn JavaScript

shift() - метод для удаления первого элемента массива в JavaScript

shift() удаляет первый элемент массива.

Это метод, противоположный unshift(): unshift() добавляет элементы в начало массива, а shift() убирает первый элемент.

Синтаксис

array.shift()

Метод не принимает аргументов.

Что делает shift()

После вызова shift() первый элемент исчезает из массива, а остальные сдвигаются влево.

const numbers = [10, 20, 30];

numbers.shift();

console.log(numbers); // [20, 30]

Метод работает прямо с исходным массивом, а не создаёт новый.

Что возвращает shift()

shift() возвращает удалённый элемент.

const fruits = ["apple", "banana", "orange"];
const result = fruits.shift();

console.log(result); // "apple"
console.log(fruits); // ["banana", "orange"]

Это главное, что важно запомнить про shift().

Если массив пустой

Если вызвать shift() у пустого массива, ошибки не будет.

const list = [];
const result = list.shift();

console.log(result); // undefined
console.log(list);   // []

В этом случае метод просто вернёт undefined.

shift() меняет исходный массив

После вызова shift() сам массив становится короче:

const items = ["a", "b", "c"];

items.shift();

console.log(items); // ["b", "c"]

Если нужен новый массив без изменения старого, чаще используют slice(1):

const items = ["a", "b", "c"];
const newItems = items.slice(1);

console.log(items);    // ["a", "b", "c"]
console.log(newItems); // ["b", "c"]

Когда это полезно

shift() удобно использовать, когда:

  • нужно удалить первый элемент массива
  • нужно получить это значение отдельно
  • изменение исходного массива допустимо

Пример:

const queue = ["first", "second", "third"];
const nextItem = queue.shift();

console.log(nextItem); // "first"
console.log(queue);    // ["second", "third"]

Это типичный сценарий для работы с очередью.

shift() и pop()

Оба метода удаляют элемент, но с разных сторон массива.

const values = [1, 2, 3];

console.log(values.shift()); // 1
console.log(values);         // [2, 3]

shift() удаляет первый элемент, а pop() удаляет последний.

Частые ошибки

Думать, что shift() возвращает новый массив

const numbers = [1, 2, 3];
const result = numbers.shift();

console.log(result); // 1

Здесь result - это удалённый элемент, а не [2, 3].

Забывать, что метод меняет массив

const items = ["a", "b", "c"];

items.shift();

После этого items уже не содержит первый элемент.

Ждать ошибку у пустого массива

const list = [];

console.log(list.shift()); // undefined

Метод не падает, а просто возвращает undefined.

Быстрая памятка

  • shift() удаляет первый элемент массива
  • метод не принимает аргументов
  • shift() возвращает удалённый элемент
  • если массив пустой, метод вернёт undefined
  • shift() меняет исходный массив

Коротко

shift() - это стандартный способ удалить первый элемент массива в JavaScript. Главное, что стоит запомнить: метод изменяет исходный массив и возвращает то значение, которое было удалено.