js中slice和splice的区别
言简意赅,直接上货。
slice():该方法会返回一个新的数组,强调:新数组,并不会影响原来的数组。先来看看语法咋说:arrayObject.slice(start,end)。其中,start必需,end可选。
start规定开始截取的位置。end规定结束的位置。
- 只有start的时候,从start开始的位置开始截取到数组末尾元素。
<script type='text/javascript'> var arr = ['A', 'B', 'C', 'D', 'E']; var arr1 = arr.slice(2); console.log(arr1);//['C','D','E']
</script>
- start为负数的时候,从数组末尾开始算起,也就是说,-1指的是数组的最后一个元素。-2指的是数组倒数第二个元素。以此类推。
<script type='text/javascript'> var arr = ['A', 'B', 'C', 'D', 'E']; var arr1 = arr.slice(-2); console.log(arr1);//['D','E'] </script>
- end不包括在内,例如arr.slice[2,4],指的是从数组第2个元素开始截取,到第4个元素结束,不包括结束的第4个元素。如果end是负数,和start用法一样,也是从数组末尾开始截取。
splice():该方法向数组中添加/删除元素,然后返回被删除的元素。会改变原来的数组。强调:会改变原来的数组。先来看看语法咋说:arrayObject.splice(index,howmany,item1,.....,itemX),其中index,howmany必需,item1,......,itemX可选。
index规定添加/删除的位置。howmany规定要删除的数量。item1,......,itemX规定向数组中添加的元素。
- howmany为0时,表示不删除元素。
- item1,......,itemX可选可不选。
<script type='text/javascript'> var arr = ['A', 'B', 'C', 'D', 'E']; arr.splice(2,0,'New'); console.log(arr);//['A','B','New','C','D','E'] </script>