我需要过滤元素的子数组。
var university = {
"fax": "123345",
"email": "test@test.com",
"url": "www.test.com",
"classes": [
{
"number": "1",
"name": "maths",
"students": [
{
"name": "Max",
"exams": [
{
"date": "2016-01-04T18:32:43.000Z",
"passed": false
},
{
"date": "2016-01-04T18:32:43.000Z",
"passed": true
},
{
"date": "2016-01-04T18:32:43.000Z",
"passed": false
},
{
"date": "2016-01-04T18:32:43.000Z",
"passed": true
}
]
},
{...}
]
},
{...}
]
}
好的我需要在没有过滤的情况下获得所有课程,每个班级的所有学生都没有过滤,但在考试数组中我只需要获得通过的课程。
我尝试了以下内容:
university.classes.students.exams.filter(function (el) {
return el.passed
});
但它不起作用......
我已经搜索了一个没有成功的解决方案......任何帮助都将不胜感激。
答案 0 :(得分:3)
classes
和students
是数组 - 所以你必须循环它们:
university.classes.forEach(function(uniClass) {
uniClass.students.forEach(function(student) {
student.exams = student.exams.filter(function (el) {
return el.passed;
});
});
});