splice和slice的区别为:
1.splice改变原数组,slice不改变原数组。
2.splice除了可以删除之外,还可以插入。
3.splice可传入3个参数,slice接受2个参数。
1、splice
splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
注释:splice() 方法会改变原来的数组结构。
语法
arrayObject.splice(index,deleteCount,item1,.....,itemX)
splice() 方法通过删除或者替换现有元素或者原地添加新的元素来修改数组,并且以数组形式返回被修改的内容。
有三个参数:
index:开始位置(必须要有)。整数,规定添加/删除项目的位置。
如果超出数组的长度,则从数组末尾开始添加
如果是负值,从数组末尾开始第几位
如果负数也大于数组的长度,则开始位置为0
deleteCount:移除的数量(必须要有)。要删除的项目数量。如果设置为 0,则不会删除项目。
如果大于数组的长度,也会提取到数组末尾。
item:替换的元素。item1, ..., itemX可选。表示向数组添加的新项目。从数组中移除一个或多个,
并用新的item替换。
我们在使用的时候可根据自己的情况传递一个参数,或两个参数,或者三个参数。
返回值
类型
描述
Array包含被删除项目的新数组,如果有的话。
总结splice()这个方法就是可以删除数组中的项,也可以向数组中添加新的项
const arr = [1, 2, 3, 4, 5]
const sub = arr.splice(2, 3)
// 原始数组已修改
arr // [1, 2]
sub // [3, 4, 5]
例子 1
在本例中,我们将创建一个新数组,并向其添加一个元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,0,"Lemon","Kiwi"); // 其中0代表添加
输出结果:
Banana,Orange,Lemon,Kiwi,Apple,Mango
例子 2
在本例中我们将删除位于 index 3 的元素,并添加一个新元素来替代被删除的元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(3,1,"Lemon","Kiwi"); // 其中1代表删除
输出结果:
Banana,Orange,Lemon,Kiwi,Mango
例子 3
从第三个位置开始删除数组后的两个元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,2);
输出结果:
Banana,Orange
2、slice
slice() 方法可从已有的数组中返回选定的元素。
语法
arrayObject . slice ( start , end )
slice返回由start和end决定的一个浅拷贝的新数组,原数组不会改变。注意,该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()。
有两个参数:
start:起始索引(必须要有)。规定从何处开始选取。如果是负数,则从末尾开始。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。如果省略start,则默认是数组的0下标开始
end:结束索引(可选)。规定从何处结束选取。该参数是数组片段结束处的数组下标。
如果end被省略,slice会一直到末尾。
如果end大于数组的长度,也会提取到数组末尾。
如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
返回值
返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。
const arr = [1, 2, 3, 4, 5]
const sub = arr.slice(2, 3)
// 原始数组未被修改
arr // [1, 2, 3, 4, 5]
sub // [3]
例子1:
从数组中读取元素:
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"]; 【位置为:0,1,2,3,4】
var citrus = fruits.slice(1,3); 【从1开始显示,显示到3的前一个】
输出:
Orange,Lemon
例子 2:
使用负值从数组中读取元素:
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var myBest = fruits.slice(-3,-1);
输出:
Lemon,Apple