javascript - 从数组组中删除多个对象

标签 javascript

我想将整个对象拼接到数组“Docs > Exam”中,其中包含“Pass”:“NO” 我已经尝试过了

 var docs = [
               {"Id":1,"Name":"First","Exam":[{"Pass":"No"},{"Sub":"T1"}]},
               {"Id":2,"Name":"Second","Exam":[{"Pass":"Yes"},{"Sub":"T2"}]},
               {"Id":3,"Name":"Third","Exam":[{"Pass":"No"},{"Sub":"T3"}]}
               ];

for (var i = docs.length - 1; i >= 0; i--) {
     for (var j = docs[i].Exam.length - 1; j >= 0; j--) {
             if (docs[i].Exam[j].Pass == 'No') {
                 docs.splice(docs[i],1);
             }
        }
    }
    
console.log(docs);

我只需要包含此对象的文档

{"Id":2,"Name":"Second","Exam":[{"Pass":"Yes"},{"Sub":"T2"}

最佳答案

使用 filter 非常容易和 some :

docs = docs.filter(doc => doc.Exam.some(exam => exam.Pass === 'Yes'))

关于javascript - 从数组组中删除多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44155732/

相关文章:

javascript - 如何修复 javascript 倒计时秒错误

javascript - javascript Reflect.construct newTarget 在做什么

javascript - 在 ecmascript 中导入时执行函数

javascript - 我如何根据用户提供的过滤值显示搜索结果?

javascript - DOMContentLoaded 事件未触发

javascript - 在 OdinMonkey 中优化 asm.js

javascript - 数据表中数组变量的粒度操作

javascript - 如何让我的类装饰器只在继承链中最外层的类上运行?

javascript - 如何从一个 View 获取更改值事件以触发另一个 View 中的方法

javascript - 在没有原型(prototype)的情况下创建的对象上使用 console.log 时出错 && 访问具有字符串属性的数组有效..如何?