Array.prototype.pop()
基线 广泛可用
此功能已经很好地建立起来,并且在许多设备和浏览器版本中都有效。它自 2015 年 7 月.
报告反馈
试一试
语法
的
pop()
方法 Array
实例从数组中删除最后一个元素并返回该元素。此方法会更改数组的长度。pop()
js
参数
无。
返回值
描述
从数组中删除的元素;undefined
如果数组为空。
pop()
方法会删除数组中的最后一个元素,并将该值返回给调用者。如果您在空数组上调用 pop()
,它将返回 undefined
.
Array.prototype.shift()
的行为类似于 pop()
,但应用于数组中的第一个元素。
pop()
方法是一种变异方法。它会更改 this
的长度和内容。如果您希望 this
的值保持不变,但返回一个新数组,其中删除了最后一个元素,您可以使用 arr.slice(0, -1)
而不是。
示例
删除数组的最后一个元素
以下代码创建包含四个元素的 myFish
数组,然后删除其最后一个元素。
的
pop()
方法 Array
实例从数组中删除最后一个元素并返回该元素。此方法会更改数组的长度。const myFish = ["angel", "clown", "mandarin", "sturgeon"];
const popped = myFish.pop();
console.log(myFish); // ['angel', 'clown', 'mandarin' ]
console.log(popped); // 'sturgeon'
在非数组对象上调用 pop()
pop()
方法会读取 this
的 length
属性。如果规范化的长度 为 0,则 length
将再次设置为 0
(而在之前它可能是负数或 undefined
)。否则,将返回 length - 1
处的属性并将其删除。
的
pop()
方法 Array
实例从数组中删除最后一个元素并返回该元素。此方法会更改数组的长度。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
故意是通用的,我们可以利用这一点——如下面的示例所示。
请注意,在此示例中,我们没有创建数组来存储对象集合。相反,我们将集合存储在对象本身中,并在 Array.prototype.push
和 Array.prototype.pop
上使用 call
来欺骗这些方法,使其认为我们正在处理数组。
的
pop()
方法 Array
实例从数组中删除最后一个元素并返回该元素。此方法会更改数组的长度。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
规范
规范 |
---|
ECMAScript 语言规范 # sec-array.prototype.pop |
浏览器兼容性
BCD 表格仅在启用了 JavaScript 的浏览器中加载。