2. 数组循环删除问题

文章探讨了在JavaScript中,使用`shift`从头遍历删除数组元素导致结果不符合预期的问题,以及如何通过使用`pop`方法倒序删除解决了这一问题。
摘要由CSDN通过智能技术生成

当使用循环从头遍历删除数组中所有元素时,会发现最终的结果不是我们想要的,如下图:
代码:

<script>
    let arr = [1, 2, 3, 4]
    for (let i = 0; i < arr.length; i++) {
        arr.shift()
    }
    console.log(arr)
</script>

运行结果:
在这里插入图片描述
为什么会这样呢?
当删除完第一个元素,i变成1,数组长度变成3(因为删除了一个元素,数组长度减少了1)。
当删除完第二个元素,i变成2,数组长度变成2,2<2不满足,循环终止。因此数组的最终结果为[3,4]。
在这里插入图片描述
解决办法:倒序删除
代码:

<script>
    let arr = [1, 2, 3, 4]
    for (let i = arr.length; i > 0; i--) {
        arr.pop()
    }
    console.log(arr)
</script>

原理:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值