0

I am new to javascript. Simply i want to remove all objects with completed: true.

But my function doesn't do that. What am i missing ?

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)
bugra
  • 3
  • 1

1 Answers1

1

You could use Array.prototype.filter instead:

const undone = todo.filter((item) => !item.completed)
const completed = todo.filter((item) => item.completed)
Get Off My Lawn
  • 34,175
  • 38
  • 176
  • 338
tkone
  • 22,092
  • 5
  • 54
  • 78