slice(start,end)
两个参数:分别是从哪到哪开始删除
这个方法不会改变当前的数组,而是将获取到的元素封装到一个新数组中显示结果
包含开始索引,不包含结束索引
看个例子:
<script type="text/javascript"> let arr=['a','b','c','d']; var arr1 = arr.slice(0,3); console.log(arr1); </script>
从索引0开始也就是对应的数组中的a截取到字母d但不包含d
所以取到的也就是abc
打印结果:
第二个参数可以忽略不写,这时会截取从开始索引往后的所有元素
例如:
<script type="text/javascript"> let arr=['a','b','c','d']; var arr1 = arr.slice(0); console.log(arr1); //(4) ['a', 'b', 'c', 'd'] </script>
打印结果如下图所示:
意思就是从索引0开始截取所有的元素
此外,索引还可以传递负值,如果是负值的话,那么就会从后往前计算
例:
<script type="text/javascript"> let arr=['a','b','c','d']; var arr1 = arr.slice(-3); console.log(arr1); </script>
打印结果为:
例2:
<script type="text/javascript"> let arr=['a','b','c','d']; var arr1 = arr.slice(0,-2); console.log(arr1); </script>
打印结果为:
-2表示的是截取到倒数第二个元素,但是不包含它本身
数组中的splice(strt,end,index1,index2...)方法
四个参数:从什么位置开始,删几个,删了过后应该插入什么元素
使用splice会影响到原数组,会将指定元素从元素数组中删除,并将被删除的元素作为返回值返回
参数:
strt:表示开始位置的索引
end:表示删除的数量
index1、index2.....可以传递新的元素,这些元素会自动插入到开始位置索引前面
例:
let arr=['a','b','c','d']; var arr1 = arr.splice(0,1); console.log(arr1); console.log(arr);
打印结果:
这里从0索引位置开始删除1个,把删除的这一个(a)放在新建的一个新数组里。这里会发现旧数组中的元素也对应被删除。
再看个例子:
let arr=['a','b','c','d']; var arr1 = arr.splice(0,1,'z','y','x'); console.log(arr1); console.log(arr);
打印结果:
这里可以看到当第三个参数及以后的参数都把值添加到了老数组中的前面,并不是填加在新数组中
如果不删除元素如何在中间添加元素呢?其实很简单这里在举个例子:
这是一个数组 arr=['a','b','c','d'] 这里要打印出['a','b','x','y','z','c','d']
代码如下:
let arr=['a','b','c','d']; var arr1 = arr.splice(2,0,'x','y','z'); console.log(arr1); console.log(arr);
打印结果:
只需把删除的个数改为0即可