【问题标题】:Javascript forEach() skips items [duplicate]Javascript forEach()跳过项目[重复]
【发布时间】:2019-05-14 02:08:20
【问题描述】:

我是 JavaScript 新手。只是我想删除所有已完成的对象: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)

【问题讨论】:

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

标签: javascript arrays foreach


【解决方案1】:

您可以改用Array.prototype.filter

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

【讨论】:

    猜你喜欢
    • 2014-07-30
    • 2016-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    • 2015-08-19
    相关资源
    最近更新 更多