随笔 - 750  文章 - 1  评论 - 107  阅读 - 34万

【转】[JavaScript] 数组的 pop 、push 、shift 、splice 用法

转自:kimi.ai
pop 方法用于从数组的末尾移除最后一个元素,并返回被移除的元素。以下是其详细用法:

基本语法

JavaScript复制
array.pop()
  • array:要操作的数组。

返回值

返回被移除的元素。如果数组为空,则返回 undefined

示例

  1. 从非空数组中移除元素
    JavaScript复制
    let arr = [1, 2, 3, 4, 5];
    let removedElement = arr.pop();
    console.log(arr);            // [1, 2, 3, 4]
    console.log(removedElement); // 5
  2. 从空数组中移除元素
    JavaScript复制
    let arr = [];
    let removedElement = arr.pop();
    console.log(arr);            // []
    console.log(removedElement); // undefined

注意事项

  • pop 方法会直接修改原数组,而不是返回一个新数组。
  • 每次调用 pop 方法只会移除数组的最后一个元素。
  • 如果数组为空,pop 方法会返回 undefined,并且数组仍然为空。
  • pop 方法的执行效率较高,因为它不需要重新调整数组中其他元素的索引。如果需要频繁地从数组末尾移除元素,pop 方法是一个非常好的选择。

与 push 方法的配合使用

pushpop 方法经常一起使用,可以将数组当作栈(Stack)来使用。栈是一种后进先出(LIFO, Last In First Out)的数据结构,新元素总是添加到栈顶,移除元素时也是从栈顶移除。
JavaScript复制
let stack = [1, 2, 3];
stack.push(4); // 添加元素 4 到栈顶
console.log(stack); // [1, 2, 3, 4]

let topElement = stack.pop(); // 从栈顶移除元素 4
console.log(stack); // [1, 2, 3]
console.log(topElement); // 4
这种使用方式在处理需要后进先出逻辑的场景中非常有用,例如在实现递归算法、解析表达式等场景中。

push 方法用于将一个或多个元素添加到数组的末尾,并返回新数组的长度。以下是其详细用法:

基本语法

JavaScript复制
array.push(item1[, item2[, ..., itemN]])
  • array:要操作的数组。
  • item1, item2, ..., itemN:要添加到数组末尾的元素,可以是一个或多个。

返回值

返回新数组的长度,即添加元素后的数组长度。

示例

  1. 添加单个元素
    JavaScript复制
    let arr = [1, 2, 3];
    let newLength = arr.push(4);
    console.log(arr);     // [1, 2, 3, 4]
    console.log(newLength); // 4
  2. 添加多个元素
    JavaScript复制
    let arr = [1, 2, 3];
    let newLength = arr.push(4, 5, 6);
    console.log(arr);     // [1, 2, 3, 4, 5, 6]
    console.log(newLength); // 6
  3. 添加不同类型元素
    JavaScript复制
    let arr = [1, 2, 3];
    let newLength = arr.push('a', true, {key: 'value'});
    console.log(arr);     // [1, 2, 3, 'a', true, {key: 'value'}]
    console.log(newLength); // 6

注意事项

  • push 方法会直接修改原数组,而不是返回一个新数组。
  • 如果不传入任何参数,push 方法不会对数组进行任何修改,但仍然会返回数组的当前长度。
  • push 方法可以一次性添加多个元素,这些元素会按照传入的顺序依次添加到数组末尾。

shift 方法用于从数组的开头移除第一个元素,并返回被移除的元素。以下是其详细用法:

基本语法

JavaScript复制
array.shift()
  • array:要操作的数组。

返回值

返回被移除的元素。如果数组为空,则返回 undefined

示例

  1. 从非空数组中移除元素
    JavaScript复制
    let arr = [1, 2, 3];
    let removedElement = arr.shift();
    console.log(arr);            // [2, 3]
    console.log(removedElement); // 1
  2. 从空数组中移除元素
    JavaScript复制
    let arr = [];
    let removedElement = arr.shift();
    console.log(arr);            // []
    console.log(removedElement); // undefined

注意事项

  • shift 方法会直接修改原数组,而不是返回一个新数组。
  • 每次调用 shift 方法只会移除数组的第一个元素。
  • 如果数组为空,shift 方法会返回 undefined,并且数组仍然为空。
  • shift 方法的执行效率相对较低,因为它需要重新调整数组中所有元素的索引。如果需要频繁地从数组开头移除元素,建议使用其他数据结构(如 LinkedList)或考虑使用 pop 方法从数组末尾移除元素,以提高性能。

splice 方法是数组的一个非常强大且常用的方法,它可以用来添加、删除或替换数组中的元素,以下是其详细用法:

基本语法

JavaScript复制
array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
  • array:要操作的数组。
  • start:必需参数,表示开始修改的索引位置。如果该参数大于数组长度,则从数组末尾开始添加元素;如果为负数,则表示从数组末尾开始计算的索引位置,-1 表示倒数第一个元素,以此类推。
  • deleteCount:可选参数,表示要删除的元素个数。如果省略该参数或其值大于从start位置到数组末尾的元素个数,则从start位置到数组末尾的所有元素都会被删除。
  • item1, item2, ...:可选参数,表示要添加到数组中的元素。从start + deleteCount的位置开始添加。

返回值

splice 方法会返回一个数组,该数组包含了被修改(删除)的元素。如果没有删除元素,则返回一个空数组。

常见用法示例

  1. 删除元素
    • 删除指定位置的单个元素
      JavaScript复制
      let arr = [1, 2, 3, 4, 5];
      let deletedElements = arr.splice(2, 1); // 从索引2开始删除1个元素
      console.log(arr); // [1, 2, 4, 5]
      console.log(deletedElements); // [3]
    • 删除指定位置的多个元素
      JavaScript复制
      let arr = [1, 2, 3, 4, 5];
      let deletedElements = arr.splice(1, 3); // 从索引1开始删除3个元素
      console.log(arr); // [1, 5]
      console.log(deletedElements); // [2, 3, 4]
    • 删除从指定位置到数组末尾的所有元素
      JavaScript复制
      let arr = [1, 2, 3, 4, 5];
      let deletedElements = arr.splice(2); // 从索引2开始删除到数组末尾的所有元素
      console.log(arr); // [1, 2]
      console.log(deletedElements); // [3, 4, 5]
  2. 添加元素
    • 在指定位置添加单个元素
      JavaScript复制
      let arr = [1, 2, 4, 5];
      arr.splice(2, 0, 3); // 在索引2的位置添加元素3
      console.log(arr); // [1, 2, 3, 4, 5]
    • 在指定位置添加多个元素
      JavaScript复制
      let arr = [1, 2, 5];
      arr.splice(2, 0, 3, 4); // 在索引2的位置添加元素3和4
      console.log(arr); // [1, 2, 3, 4, 5]
  3. 替换元素
    • 替换单个元素
      JavaScript复制
      let arr = [1, 2, 3, 4, 5];
      arr.splice(2, 1, 'a'); // 从索引2开始删除1个元素,并添加元素'a'
      console.log(arr); // [1, 2, 'a', 4, 5]
    • 替换多个元素
      JavaScript复制
      let arr = [1, 2, 3, 4, 5];
      arr.splice(1, 3, 'a', 'b', 'c'); // 从索引1开始删除3个元素,并添加元素'a'、'b'、'c'
      console.log(arr); // [1, 'a', 'b', 'c', 5]

注意事项

  • splice 方法会直接修改原数组,而不是返回一个新数组。
  • 当使用负数索引时,要确保其绝对值不超过数组长度,否则可能会导致不符合预期的结果。
  • 如果在添加元素时,start 位置超出了数组末尾,那么新添加的元素会被添加到数组末尾。
posted on   z5337  阅读(95)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2023-01-17 【转】Git 报错:TLS certificate verification has been disabled!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示