Краткое описание: в этом уроке вы узнаете, как использовать метод JavaScript Array shift()
для удаления первого элемента из массива.
Введение в функцию JavaScript Array shift()
Метод Array.prototype.shift()
удаляет первый элемент из массива и возвращает этот элемент. Ниже показан синтаксис метода shift()
:
Code language: CSS (css)array.shift()
Если массив пуст, метод shift()
возвращает undefined
. В противном случае он возвращает удаленный элемент. Также метод shift()
уменьшает свойство length
массива на единицу.
Если вы хотите удалить последний элемент из массива, вы можете использовать метод pop()
.
Обратите внимание, что метод shift()
должен переиндексировать все оставшиеся элементы массива. Поэтому он медленнее по сравнению с методом pop()
.
Примеры метода JavaScript Array shift()
Рассмотрим несколько примеров использования метода shift()
.
1) Пример использования метода JavaScript array shift()
В следующем примере метод shift()
используется для удаления первого элемента из массива:
Code language: JavaScript (javascript)const numbers = [10, 20, 30]; let number = numbers.shift(); console.log({ number }); console.log({ numbers }); console.log({ length: numbers.length });
Вывод:
Code language: CSS (css){ number: 10 } { numbers: [ 20, 30 ] } { length: 2 }
Как это работает.
Во-первых, определите массив numbers
, состоящий из трех элементов:
Code language: JavaScript (javascript)const numbers = [10, 20, 30];
Во-вторых, удалите первый элемент из массива numbers
и присвойте удаленный элемент переменной number
.
Code language: JavaScript (javascript)let number = numbers.shift();
В-третьих, выведите на консоль удаленный элемент, массив и длину массива:
Code language: JavaScript (javascript)console.log({ number }); console.log({ numbers }); console.log({ length: numbers.length });
Следующий рисунок иллюстрирует работу приведенного выше примера:
2) Пример использования метода JavaScript array shift()
Следующий пример показывает, как использовать метод shift()
с циклом while
для удаления всех элементов массива:
Code language: JavaScript (javascript)const numbers = [10, 20, 30]; let number; while ((number = numbers.shift()) != undefined) { console.log(number); }
Вывод:
10 20 30
Использование JavaScript array shift() с массивоподобным объектом
Метод shift()
является общим. Поэтому вы можете использовать его с массивоподобными объектами. Чтобы использовать метод shift()
с объектом типа массив, вы используете метод call()
или apply()
.
Рассмотрим следующий пример:
Code language: JavaScript (javascript)let greetings = { 0: 'Hi', 1: 'Hello', 2: 'Howdy', length: 3, removeFirst() { return [].shift.call(this); }, }; const greeting = greetings.removeFirst(); console.log(greeting); console.log(greetings);
Вывод:
Code language: JavaScript (javascript)Hi { '0': 'Hello', '1': 'Howdy', length: 2, removeFirst: [Function: removeFirst] }
Как это работает.
Сначала определите объект greetings
:
Code language: JavaScript (javascript)let greetings = { 0: 'Hi', 1: 'Hello', 2: 'Howdy', length: 3, removeFirst() { return [].shift.call(this); }, };
Объект greetings
имеет три элемента, обозначаемые свойствами 0
, 1
и 2
. Также у него есть свойство length
, которое хранит количество элементов объекта.
Метод removeFirst()
использует метод call()
для вызова метода shift()
массива со ссылками this
на объект greetings
.
Во-вторых, вызвать метод removeFirst()
и присвоить удаленный элемент переменной greeting
:
Code language: JavaScript (javascript)const greeting = greetings.removeFirst();
В-третьих, выведите greeting
и greetings
в консоль:
Code language: JavaScript (javascript)console.log(greeting); console.log(greetings);
Вывод показывает, что length
уменьшилась на единицу, свойство с индексом 0
удалено, а индексы других свойств были скорректированы соответствующим образом.
Резюме
- Используйте метод
shift()
для удаления первого элемента из массива и возврата этого элемента. - Используйте метод
shift()
с объектом типа массив через методcall()
илиapply()
.