js forEach的坑

如题

 

我第一次的处理

复制代码
//这个是不通过的 因为forEach删除自身元素index不会被重置
function remove(arr, item) {
    let newArray = arr.slice(0)
    newArray.forEach(
        (ele,i) =>{
            if(ele == item){
                newArray.splice(i,1)
            }
        }
    )
    return newArray
}
复制代码

改成使用for循环,完美解决

复制代码
let arr = [1, 2, 1],
    i = 0,
    length = arr.length;

for (; i < length; i++) {
    // 删除数组中所有的1
    if (arr[i] === 1) {
        arr.splice(i, 1);
        //重置i,否则i会跳一位
        i--;
    };
};
console.log(arr);//[2]
复制代码

参考地址:https://www.cnblogs.com/echolun/p/11544045.html

posted @   lzhflzjx  阅读(238)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示