面试题每日一练,测测你对JavaScript slice 和 splice 方法的理解

4e412d0702c26d1d327a36dd9a0d9cf6.png

今天的挑战题目涉及到JavaScript中 slicesplice 方法的使用。这两个方法名称相似,但它们的功能和对数组的影响却截然不同。我们一起来分析这段代码,看看它会输出什么以及为什么。

代码解析

首先,来看这段代码的初始部分:

const arr = [1, 2, 3, 4, 5];

我们创建了一个数组 arr,包含5个元素 [1, 2, 3, 4, 5]

接下来,我们分别调用了 slicesplice 方法:

const sliced = arr.slice(1, 3);

slice 方法返回一个新的数组,它从原数组中提取了从索引 1 到(但不包括)索引 3 的元素。原数组 arr 不会受到 slice 操作的影响。

在这行代码中,slice(1, 3) 返回了 [2, 3],因为它提取了 arr 中的第2个和第3个元素。

const spliced = arr.splice(1, 3);

splice 方法则是一个对原数组有破坏性影响的操作。它从原数组中删除从索引 1 开始的3个元素,并返回一个包含删除元素的新数组。

在这行代码中,splice(1, 3)arr 中删除了第2个、第3个和第4个元素(即 2, 3, 4),返回 [2, 3, 4],同时原数组 arr 变成了 [1, 5]

让我们来看看最终的输出结果:

console.log(sliced, spliced, arr);

根据前面的分析:

  • sliced[2, 3],因为 slice 返回了从原数组中提取的部分内容,不改变原数组。

  • spliced[2, 3, 4],因为 splice 删除了原数组中的这部分内容,并返回了它们。

  • arr[1, 5],因为 splice 修改了原数组,删除了中间的三项元素。

所以,最终的输出是:

[2, 3] [2, 3, 4] [1, 5]

结束

这道题目展示了 slicesplice 方法在JavaScript中的不同作用。slice 只是创建一个原数组的浅拷贝,不改变原数组,而 splice 则是直接修改原数组,并返回被删除的部分。理解这两个方法的不同之处对于正确使用它们至关重要。你答对了吗?欢迎在评论区分享你的答案和想法!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值