ZetCode

JavaScript pop 方法

最后修改于 2025 年 4 月 4 日

在本文中,我们将展示如何使用 JavaScript 中的 pop 方法从数组中移除元素。

数组 pop 操作

pop 方法从数组中移除最后一个元素,并返回该元素。此方法会改变数组的长度。如果数组为空,pop 返回 undefined,并且数组保持不变。

pop 方法是一个改变原始数组的方法,它会直接修改原始数组。它是 push 方法的相反操作,push 方法向数组末尾添加元素。当在 JavaScript 中实现类似栈的行为时,通常会用到 pop 方法。

由于 pop 会修改原始数组,因此在需要保留原始数组内容时,应谨慎使用。对于不可变操作,请考虑使用数组切片。

基本的 pop 示例

以下示例演示了 pop 方法的基本用法。

main.js
const fruits = ['apple', 'banana', 'orange'];
const removedFruit = fruits.pop();

console.log(fruits);      // Modified array
console.log(removedFruit); // Removed element

我们创建一个水果数组并移除最后一个元素。pop 方法返回被移除的元素,同时修改原始数组。数组的长度会减一。

$ node main.js
[ 'apple', 'banana' ]
orange

从空数组中弹出

在空数组上调用 pop 时的行为。

main.js
const emptyArray = [];
const result = emptyArray.pop();

console.log(emptyArray);  // Still empty
console.log(result);      // undefined

当在空数组上调用 pop 时,它会返回 undefined,并且数组仍然为空。这在实际应用中很重要,需要进行检查以避免意外行为。

$ node main.js
[]
undefined

在循环中使用 pop

pop 方法可用于以相反的顺序处理数组元素。

main.js
const numbers = [1, 2, 3, 4, 5];
while (numbers.length > 0) {
    const num = numbers.pop();
    console.log(`Processing: ${num}`);
}
console.log(numbers); // Empty array

我们使用 while 循环来处理并移除数组中的所有元素。循环一直进行,直到数组为空。当您需要以后进先出 (LIFO) 顺序处理元素时,此模式非常有用。

$ node main.js
Processing: 5
Processing: 4
Processing: 3
Processing: 2
Processing: 1
[]

使用 pop 实现栈

pop 方法对于栈数据结构的实现至关重要。

main.js
const stack = [];
stack.push('first');  // Add to top
stack.push('second');
stack.push('third');

console.log(stack.pop()); // Remove from top
console.log(stack.pop());
console.log(stack);

我们演示了使用 pushpop 的基本栈操作。最后添加的元素是第一个被移除的元素 (LIFO)。这展示了如何将 JavaScript 数组用作栈。

$ node main.js
third
second
[ 'first' ]

将 pop 与其他方法结合使用

pop 方法可以与其他数组方法结合使用,进行复杂的操作。

main.js
const data = [10, 20, 30, 40, 50];
const lastTwo = [data.pop(), data.pop()].reverse();

console.log(data);    // Modified array
console.log(lastTwo); // Last two elements in original order

我们移除了最后两个元素,将它们存储在一个新数组中,并颠倒了它们的顺序。这演示了 pop 如何成为更复杂的数组操作的一部分,同时保持可读性。

$ node main.js
[ 10, 20, 30 ]
[ 40, 50 ]

来源

数组 pop - 语言参考

在本文中,我们已经演示了如何使用 pop() 方法从 JavaScript 中的数组中移除元素。

作者

我叫 Jan Bodnar,是一位充满激情的程序员,拥有丰富的编程经验。自 2007 年以来,我一直在撰写编程文章。到目前为止,我撰写了 1,400 多篇文章和 8 本电子书。 我拥有超过十年的编程教学经验。

列出 所有 JS 数组函数。