好长时间没有更博客了,最近实在是一擦事儿接一茬事儿,我得博客简直要荒废了哈哈~~~
今天咱们来闲谈一下splice和slice的区别,今天写原生js时突然用到居然想不起来了哈哈,真是伤了年纪的人记性真的伤不起
好啦~~~切入正题
其实splice和slice是很相像的,从字面上来看,splice 就比slice多了一个p。
One by one.一个一个来讲
先来扯扯slice的用法:
参考文档:http://www.w3school.com.cn/jsref/jsref_slice_array.asp
slice是从已有的数组中返回选定的元素
语法结构:
arrayObject.slice(start,end)
slice有两个参数:、
第一个参数是开始下标的位置,如果是如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
第二个参数是结束下标的位置,如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素
返回值:
是从 start 到 end (不包括该元素)的 arrayObject 中的元素。
废话不多说,直接举栗子:
两个参数都有的情况如下;
<script type="text/javascript">
var arr=[1,2,3,4,5,6,7,8,9]
document.write(arr.slice(1,3));
</script>
输出结果就是2,3
只有一个参数的情况如下:
<script type="text/javascript">
var arr=[1,2,3,4,5,6,7,8,9]
document.write(arr.slice(3));
</script>
输出结果就是4,5,6,7,8,9
slice截取过后数组:
<script type="text/javascript">
var arr=[1,2,3,4,5,6,7,8,9]
document.write(arr.slice(3));
document.write(arr);
</script>
返回值依旧是1,2,3,4,5,6,7,8,9
接下来再来说说splice的用法:
arrayObject.splice(index,howmany,item1,.....,itemX)
第一个参数:是开始位置的下标,若为负数,从末尾位置开始,若为-1就是倒数第一个数,若为-2就是倒数第二个数,依次类推。
第二个参数:要删除数组的长度。若为0,则不被删除。
item1,.....,itemX 是可选的,用于向数组添加新项目
举个栗子
删除数组
<script type="text/javascript">
var newArry=[1,2,3,4,5,6,7,8,9]
document.write(newArry.splice(0,5));
</script>
返回值就是1,2,3,4,5
添加数组:
<script type="text/javascript">
var newArry=[1,2,3,4,5,6,7,8,9]
newArry.splice(0,5,"a")
document.write(newArry);
</script>
返回值是a,6,7,8,9
splice截取过后数组:
<script type="text/javascript">
var newArry=[1,2,3,4,5,6,7,8,9]
document.write(newArry.splice(0,5)+"</br>");
document.write(newArry);
</script>
返回值是6,7,8,9
综上所述:slice截取数组之后不会改变改变原来的数组值,而splice截取数组之后会改变原来的数组。