Javascript-通过嵌套数组和对象过滤器循环

Javascript-通过嵌套数组和对象过滤器循环,javascript,arrays,sorting,Javascript,Arrays,Sorting,尝试使用特定的想法获取所有数组。不知道如何执行过滤,但我想我会问这里。希望我想做的事情足够清楚。基本上我有一个课程列表,我想得到所有级别=1的课程 let courses = [{ math:[{id:1,level_id:1,requirement:'1 Credit'}] spanish:[{id:5,level_id:1,requirement:'5 Credits'}] technology:[

尝试使用特定的想法获取所有数组。不知道如何执行过滤,但我想我会问这里。希望我想做的事情足够清楚。基本上我有一个课程列表,我想得到所有级别=1的课程

 let courses = [{
               math:[{id:1,level_id:1,requirement:'1 Credit'}]
               spanish:[{id:5,level_id:1,requirement:'5 Credits'}] 
               technology:[{id:3,level_id:1,requirement:'2 Credits'}]
            }];
             
            let queryCoursesForLevelWhereIDMatches = 1
            
            let returnedArrays = courses.filter()
             
             console.log(returnedArrays); 

您可以按其
级别id
(在值内)筛选条目,然后映射其课程名称(键)

此外,我将“西班牙语”改为2级,以确保它不会返回

注意:由于对象嵌套在一个数组中,因此可以销毁该对象,然后将其转换为条目

let课程=[{
数学:[{id:1,级别_id:1,要求:'1学分'}],
西班牙语:[{id:5,等级id:2,要求:'5学分'},
技术:[{id:3,级别_id:1,要求:'2学分'}]
}];
LevelIdeQuals=([courses],id)=>
对象。条目(课程)
.filter(([,[{level\u id}]])=>level\u id===id)
.map(([courseName])=>courseName);
console.log(在levelidequals(courses,1)中查找课程)

.as console wrapper{top:0;max height:100%!important;}
您可能需要执行以下操作:

函数CourseMaster(courses=null){
本课程=课程;
this.getMath=(byProp,byVal=null)=>{
返回这个.courses.math.filter(o=>{
设p=o.hasOwnProperty(byProp);
if(byVal==null){
返回p;
}
返回p&&byVal==o[byProp];
});
}
this.getSpanish=(byProp,byVal=null)=>{
返回this.courses.spanish.filter(o=>{
设p=o.hasOwnProperty(byProp);
if(byVal==null){
返回p;
}
返回p&&byVal==o[byProp];
});
}
this.getTech=(byProp,byVal=null)=>{
返回此.courses.technology.filter(o=>{
设p=o.hasOwnProperty(byProp);
if(byVal==null){
返回p;
}
返回p&&byVal==o[byProp];
});
}
this.getAll=(byProp,byVal=null)=>{
const m=this.getMath(byProp,byVal),s=this.getSpanish(byProp,byVal),t=this.getTech(byProp,byVal);
return{math:m,西班牙语:s,technology:t}
}
}
常数课程={
数学:[{id:1,等级id:1,要求:'1学分'},{id:2,等级id:2,要求:'2学分'},
西班牙语:[{id:2,等级id:2,要求:'2学分'},{id:5,等级id:1,要求:'5学分'},
技术:[{id:3,级别id:1,要求:'2学分'},{id:2,级别id:2,要求:'2学分'}]
}
const cm=新课程管理员(课程);

控制台日志(cm.getAll('level_id',1))检查条件的
过滤器的回调在哪里?