Javascript forEach()跳过项目

Javascript forEach()跳过项目,javascript,arrays,foreach,Javascript,Arrays,Foreach,我是javascript新手。我只想删除所有具有completed:true的对象 但我的函数不能做到这一点。我错过了什么 const todo = [{ title: 'do this', completed: true },{ title: 'do this', completed: true },{ title: 'do this', completed: true },{ title: 'do this', complete

我是javascript新手。我只想删除所有具有completed:true的对象

但我的函数不能做到这一点。我错过了什么

const todo = [{
    title: 'do this',
    completed: true
},{
    title: 'do this',
    completed: true
},{
    title: 'do this',
    completed: true
},{
    title: 'do this',
    completed: true
}]

const remove = function(todo){
    todo.forEach(function(item,index){      

        if(item.completed){            
            todo.splice(index,1)        
        }
    })

}

remove(todo)
console.log(todo)

您可以改用
Array.prototype.filter

const undone = todo.filter((item) => !item.completed)
const completed = todo.filter((item) => item.completed)

如果要删除循环中的项,则需要向后循环数组,否则请使用过滤器。