Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何删除数组对象Javascript中的所有项目have isDone===true?_Javascript_Arrays_Removeall - Fatal编程技术网

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

如何删除数组对象Javascript中的所有项目have isDone===true?,javascript,arrays,removeall,Javascript,Arrays,Removeall,我想删除数组列表中所有元素有值isDone===true。但我不知道全部删除,我只删除每一项 这是我的代码: clearCompleted: function (list) { for (var i = 0; i < list.length; i++) { if (list[i].isDone === true) { list.splice(i, 1); } } }, clearCompleted:函数(列表){ 对于(变量

我想删除数组
列表中所有
元素
有值
isDone===true
。但我不知道全部删除,我只删除每一项

这是我的代码:

  clearCompleted: function (list) {
    for (var i = 0; i < list.length; i++) {
      if (list[i].isDone === true) {
        list.splice(i, 1);
      }
    }
  },
clearCompleted:函数(列表){
对于(变量i=0;i

请帮我解决它

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

let list=[{isDone:true},{isDone:false},{isDone:true}];
while(list.find({isDone}=>isDone)){
拼接(list.indexOf(list.find({isDone}=>isDone)),1)
}

控制台日志(列表)你不能像那样修改你正在循环的数组,你可以做一些事情来解决这个问题。好的解决方案请参见答案。非常感谢。@Trầ新罕布什尔州ạnh模式可以使用
for
loop
for(;list.find({isDone}=>isDone);{list.splice(list.indexOf(list.find({isDone}=>isDone)),1}
使用与
相同数量的字符,而
则使用相同数量的字符。感谢您的帮助。你能给我解释一下({isDone}=>isDone)
吗?我不明白。语法是和。相当于
.find(函数(对象){return object.isDone})
感谢您的支持。但我只是学习了ES5 javascript:(.这种做法只需使用ES5