shift() в JavaScript

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

let fruits = ['apple', 'orange', 'banana'];

let firstFruit = fruits.shift();

console.log(firstFruit);
console.log(fruits);

Результат:

apple
['orange', 'banana']

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

Метод shift() работает с началом массива. Он удаляет элемент с индексом 0, а остальные элементы сдвигаются влево.

let numbers = [10, 20, 30];

let removed = numbers.shift();

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

После удаления число 20 становится первым элементом массива.

Синтаксис

shift() вызывается через точку после имени массива.

array.shift()

Метод не принимает аргументы. Он всегда удаляет только первый элемент.

let users = ['Анна', 'Олег', 'Мария'];

users.shift();

console.log(users);

Результат:

['Олег', 'Мария']

Возврат удаленного элемента

Результат работы shift() можно сохранить в переменную.

let queue = ['Анна', 'Олег', 'Мария'];

let firstUser = queue.shift();

console.log(firstUser);

Результат:

Анна

Если удаленный элемент не нужен, можно просто вызвать метод.

let queue = ['Анна', 'Олег', 'Мария'];

queue.shift();

Исходный массив меняется

shift() меняет исходный массив. Он не создает новый массив без первого элемента.

let colors = ['red', 'green', 'blue'];

colors.shift();

console.log(colors);

Результат:

['green', 'blue']

Если старый массив нужно сохранить, сначала сделайте копию.

let colors = ['red', 'green', 'blue'];
let copy = [...colors];

copy.shift();

console.log(colors); // ['red', 'green', 'blue']
console.log(copy); // ['green', 'blue']

Пустой массив

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

let numbers = [];

let result = numbers.shift();

console.log(result);
console.log(numbers);

Результат:

undefined
[]

shift() и length

После удаления элемента длина массива уменьшается на 1.

let fruits = ['apple', 'orange', 'banana'];

console.log(fruits.length); // 3

fruits.shift();

console.log(fruits.length); // 2

Если массив уже пустой, длина останется 0.

let fruits = [];

fruits.shift();

console.log(fruits.length); // 0

Где использовать

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

let queue = ['Анна', 'Олег', 'Мария'];

let currentUser = queue.shift();

console.log(currentUser); // Анна
console.log(queue); // ['Олег', 'Мария']

Для небольших массивов это понятный и удобный способ. Если массив очень большой и удаление из начала происходит часто, лучше отдельно подумать о структуре данных, потому что после shift() элементам нужно сдвинуться.

Итого

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

  • array.shift() вызывается без аргументов.
  • Метод возвращает удаленный элемент.
  • Исходный массив после вызова меняется.
  • Остальные элементы сдвигаются к началу массива.
  • У пустого массива shift() возвращает undefined.