JavaScript——中slice与splice的区别

目录

slice(start,end)

数组中的splice(strt,end,index1,index2...)方法


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即可

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Southern Wind

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值