如何利用splice()和slice()方法操作数组
前言
splice()和slice()都是JavaScript中操作数组的方法,到底怎么用?什么时候用?有什么区别?今天把这个问题搞清楚
splice()是什么,有什么用?怎么用?
splice()用于在数组中进行添加、删除和替换操作,它可以实现以下功能:
功能1:删除数组中的元素
功能2:向数组中添加新元素
功能3:用新元素替换数组中的元素
splice方法的基本语法如下:
array.splice(start, deleteCount, item1, item2, ...)
参数说明:
start:要删除或插入元素的数组下标。
deleteCount:要删除的元素个数,如果该值为0,则不删除任何元素。
item1, item2, …:要插入到数组中的新元素,可以有多个。
var arr = ["孙悟空", "猪八戒", "唐僧", "沙和尚"]; //删除元素,从下标2开始删除2个元素 arr.splice(2, 2); console.log(arr); //["孙悟空", "猪八戒"] //添加元素,从下标1开始添加2个元素 arr.splice(1, 0, "张麻子", "县长"); console.log(arr); //["孙悟空", "张麻子", "县长", "猪八戒"] //替换元素,从下标2开始替换1个元素 arr.splice(2, 1, "独孤求败"); console.log(arr); //["孙悟空", "张麻子", "独孤求败", "猪八戒"]
★★★关键点:splice方法会直接修改原数组,如果不想修改原数组,可以先将原数组复制一份再进行操作。
slice()是什么,有什么用?怎么用?
slice()用于从数组中获取指定区间的元素,它可以实现以下功能:
功能1:获取指定区间的元素,不会修改原数组
功能2:拷贝数组的一部分,生成一个新的数组
slice方法的基本语法如下:
array.slice(start, end)
参数说明:
start:要拷贝的起始下标,包括该下标的元素。
end:要拷贝的结束下标,不包括该下标的元素。如果省略该参数,则拷贝从start开始到数组末尾的所有元素。
var arr = ["孙悟空", "猪八戒", "唐僧", "沙和尚"]; //获取指定区间的元素,不会修改原数组 var newArr1 = arr.slice(1, 3); console.log(newArr1); //["猪八戒", "唐僧"] //拷贝数组的一部分,生成一个新的数组 var newArr2 = arr.slice(); console.log(newArr2); //["孙悟空", "猪八戒", "唐僧", "沙和尚"]
★★★关键点:slice方法不会修改原数组,而是返回一个新的数组,因此可以通过slice方法来复制一个数组。另外,如果拷贝的起始下标或结束下标为负数,则表示从数组末尾开始计算的位置。
splice和slice方法的区别
splice和slice是JavaScript中的两个数组方法,它们的用法有以下区别:
1.splice方法可以修改原数组,而slice方法不会修改原数组,而是返回一个新的数组。
2.splice方法可以用于删除、添加和替换元素,而slice方法仅用于获取指定区间的元素。
var arr = ["孙悟空", "猪八戒", "唐僧", "沙和尚"]; //使用splice方法删除数组中的元素,修改原数组 arr.splice(1, 2); console.log(arr); //["孙悟空", "沙和尚"] //使用slice方法获取指定区间的元素,不修改原数组 var newArr = arr.slice(1, 2); console.log(newArr); //["沙和尚"] console.log(arr); //["孙悟空", "沙和尚"]
我们首先使用splice方法删除了数组中的元素,即从下标1开始删除2个元素,这样修改了原数组。然后我们使用slice方法获取了指定区间的元素,即从下标1开始到下标2之前的元素,这样并没有修改原数组,而是返回了一个新的数组。
小结
在了解了splice和slice的用法时,我们知道一般地:
当我们需要修改原数组时,可以使用splice方法;
当我们需要获取指定区间的元素时,可以使用slice方法。