Array.prototype.pop()
Базовая поддержка Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна в браузерах с июля 2015 года.
Метод pop() экземпляров Array удаляет последний элемент из массива и возвращает этот элемент. Этот метод изменяет длину массива.
Попробуйте
const plants = ["broccoli", "cauliflower", "cabbage", "kale", "tomato"]; console.log(plants.pop()); // Expected output: "tomato" console.log(plants); // Expected output: Array ["broccoli", "cauliflower", "cabbage", "kale"] plants.pop(); console.log(plants); // Expected output: Array ["broccoli", "cauliflower", "cabbage"]
Синтаксис
pop()
Параметры
Нет.
Возвращаемое значение
Удаленный элемент из массива; undefined, если массив пуст.
Описание
Метод pop() удаляет последний элемент из массива и возвращает это значение вызывающему объекту. Если вызвать pop() для пустого массива, он вернет undefined.
Array.prototype.shift() имеет схожее поведение с pop(), но применяется к первому элементу массива.
Метод pop() является мутирующим. Он изменяет длину и содержимое this. Если вы хотите, чтобы значение this было таким же, но возвращался новый массив с удаленным последним элементом, вы можете использовать arr.slice(0, -1) вместо этого.
Метод pop() является общим. Он ожидает, что значение this будет иметь свойство length и целочисленные свойства. Хотя строки также похожи на массивы, этот метод не подходит для их применения, так как строки неизменяемы.
Примеры
Удаление последнего элемента массива
Следующий код создает массив myFish, содержащий четыре элемента, затем удаляет его последний элемент.
const myFish = ["angel", "clown", "mandarin", "sturgeon"]; const popped = myFish.pop(); console.log(myFish); // ['angel', 'clown', 'mandarin' ] console.log(popped); // 'sturgeon'
Вызов pop() для не-массивовых объектов
Метод pop() считывает свойство length объекта this. Если нормализованная длина равна 0, length устанавливается в 0 (в то время как ранее она могла быть отрицательной или undefined). В противном случае свойство по индексу length - 1 возвращается и удаляется.
const arrayLike = {
length: 3,
unrelated: "foo",
2: 4,
};
console.log(Array.prototype.pop.call(arrayLike));
// 4
console.log(arrayLike);
// { length: 2, unrelated: 'foo' }
const plainObj = {};
// There's no length property, so the length is 0
Array.prototype.pop.call(plainObj);
console.log(plainObj);
// { length: 0 }
Использование объекта в стиле массива
push и pop намеренно сделаны общими, и мы можем использовать это в наших интересах — как показано в следующем примере.
Обратите внимание, что в этом примере мы не создаем массив для хранения коллекции объектов. Вместо этого мы храним коллекцию в самом объекте и используем call на Array.prototype.push и Array.prototype.pop, чтобы заставить эти методы думать, что мы работаем с массивом.
const collection = {
length: 0,
addElements(...elements) {
// obj.length will be incremented automatically
// every time an element is added.
// Returning what push returns; that is
// the new value of length property.
return [].push.call(this, ...elements);
},
removeElement() {
// obj.length will be decremented automatically
// every time an element is removed.
// Returning what pop returns; that is
// the removed element.
return [].pop.call(this);
},
};
collection.addElements(10, 20, 30);
console.log(collection.length); // 3
collection.removeElement();
console.log(collection.length); // 2
Спецификации
Совместимость с браузерами
| Настольные компьютеры | Мобильные | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
pop |
1 |
12 |
1 |
4 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
1 |
1 |
1.0.0 |
1.0 |
0.10.0 |
См. также
- Руководство по индексированным коллекциям
ArrayArray.prototype.push()Array.prototype.shift()Array.prototype.unshift()Array.prototype.concat()Array.prototype.splice()
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/pop