【转】[JavaScript] 数组的 pop 、push 、shift 、splice 用法
转自:kimi.ai
pop
方法用于从数组的末尾移除最后一个元素,并返回被移除的元素。以下是其详细用法:基本语法
JavaScript复制
array.pop()
-
array
:要操作的数组。
返回值
返回被移除的元素。如果数组为空,则返回
undefined
。示例
-
从非空数组中移除元素JavaScript复制
let arr = [1, 2, 3, 4, 5]; let removedElement = arr.pop(); console.log(arr); // [1, 2, 3, 4] console.log(removedElement); // 5
-
从空数组中移除元素JavaScript复制
let arr = []; let removedElement = arr.pop(); console.log(arr); // [] console.log(removedElement); // undefined
注意事项
-
pop
方法会直接修改原数组,而不是返回一个新数组。 -
每次调用
pop
方法只会移除数组的最后一个元素。 -
如果数组为空,
pop
方法会返回undefined
,并且数组仍然为空。 -
pop
方法的执行效率较高,因为它不需要重新调整数组中其他元素的索引。如果需要频繁地从数组末尾移除元素,pop
方法是一个非常好的选择。
与 push
方法的配合使用
push
和 pop
方法经常一起使用,可以将数组当作栈(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
:要添加到数组末尾的元素,可以是一个或多个。
返回值
返回新数组的长度,即添加元素后的数组长度。
示例
-
添加单个元素JavaScript复制
let arr = [1, 2, 3]; let newLength = arr.push(4); console.log(arr); // [1, 2, 3, 4] console.log(newLength); // 4
-
添加多个元素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
-
添加不同类型元素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
。示例
-
从非空数组中移除元素JavaScript复制
let arr = [1, 2, 3]; let removedElement = arr.shift(); console.log(arr); // [2, 3] console.log(removedElement); // 1
-
从空数组中移除元素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
方法会返回一个数组,该数组包含了被修改(删除)的元素。如果没有删除元素,则返回一个空数组。常见用法示例
-
删除元素
-
删除指定位置的单个元素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]
-
-
添加元素
-
在指定位置添加单个元素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]
-
-
替换元素
-
替换单个元素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
位置超出了数组末尾,那么新添加的元素会被添加到数组末尾。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有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!