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复制
-
添加元素
-
在指定位置添加单个元素
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复制
-
替换元素
-
替换单个元素
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]
-
替换单个元素
JavaScript复制
注意事项
-
splice
方法会直接修改原数组,而不是返回一个新数组。 - 当使用负数索引时,要确保其绝对值不超过数组长度,否则可能会导致不符合预期的结果。
-
如果在添加元素时,
start
位置超出了数组末尾,那么新添加的元素会被添加到数组末尾。