1.splice
splice()
方法用于添加/删除数组中的元素,然后返回被删除的元素。这个方法会改变原始数组。
arr.splice(start[, deleteCount[, item1[, item2[, ...]]]])
-
start
(必需)
指定修改的开始位置(从0开始计数)。如果超出了数组的界限,则从数组末尾开始添加内容;如果是负值,则表示从数组尾部开始算起的位置。
-
deleteCount
(可选)
整数,表示要移除的数组元素的个数。如果设置为 0,则不会移除元素。
-
item1, item2, ...
(可选)
要添加进数组的元素,从start
位置开始。如果不指定,则 splice()
只删除数组元素。
-
返回值
返回一个新数组,包含被删除的元素。如果没有删除任何元素,则返回空数组。
2.slice
slice()
方法返回一个新的数组对象,这一对象是一个由开始到结束(不包括结束)选择的、由原数组的浅拷贝构成。原始数组不会被改变。
arr.slice([begin[, end]])
-
begin
(可选)
提取起始处的索引(从0开始),从该索引开始提取原数组元素。如果该参数是负数,则表示从数组尾部开始算起的位置。
-
end
(可选)
提取结束处的索引(从0开始),在该索引处停止提取原数组元素。但不包括该索引的元素。如果该参数是负数,则表示从数组尾部开始算起的位置。
如果省略 begin
,则 slice()
将从索引 0
开始。如果省略 end
,则 slice()
会一直提取到数组末尾。
-
返回值
返回一个新的数组对象,包含从 begin
到 end
(不包括 end
)选择的、原数组的浅拷贝。
3.二者区别
-
对原数组的影响
- splice:会改变原数组。它可以通过删除或替换现有元素,或者原地添加新的元素来修改数组。
- slice:不会改变原数组。它只是返回由start和end决定的一个浅拷贝的新数组。
-
参数数量
- splice:可以接收三个参数。它们分别是:
- start:指定修改的开始位置。
- deleteCount:要移除的数组元素的个数。
- item1, item2, ...:要添加进数组的元素。
- slice:接收两个参数。它们分别是:
- start:起始索引,从该索引提取原数组元素。
- end:结束索引,在该索引结束提取原数组元素(不包含end索引的元素)。
- splice:可以接收三个参数。它们分别是:
-
返回值
- splice:返回被删除的元素组成的数组。如果没有删除任何元素,则返回空数组。
- slice:返回一个新的数组对象,这个数组包含由开始到结束(不包括结束)选择的、原数组的浅拷贝。
-
用途
- splice:主要用于修改数组内容,如添加、删除或替换元素。
- slice:主要用于提取数组的一部分,生成新的数组对象,而不改变原数组。