如何删除数组对象 Javascript 中的所有项目 isDone === true?

How to remove all item have isDone === true in array object Javascript?

我想删除数组 list 中所有 element 具有值 isDone === true 的内容。但我不知道全部删除,我只删除每一项。

这是我的代码:

  clearCompleted: function (list) {
    for (var i = 0; i < list.length; i++) {
      if (list[i].isDone === true) {
        list.splice(i, 1);
      }
    }
  },

请帮我解决。

使用whiledo..while循环,Array.prototype.indexOf()Array.prototype.find()避免检查原始数组.length 属性

let list = [{isDone:true}, {isDone:false}, {isDone:true}];

while (list.find(({isDone}) => isDone)) {
  list.splice(list.indexOf(list.find(({isDone}) => isDone)), 1)
}

console.log(list);