import 'net.hasor.dataql.fx.basic.StringUdfSource' as string;
import 'net.hasor.dataql.fx.basic.CollectionUdfSource' as collect;
// 要求获取男同学中,成绩为优秀的科目
var students = [
{"name":"A", "sex":"F", "result": [{"yw":"优秀"}, {"sx":"优秀"}, {"wl": "良好"}] },
{"name":"B", "sex":"M", "result": [{"yw":"及格"}, {"sx":"良好"}, {"wl": "优秀"}] },
{"name":"C", "sex":"F", "result": [{"yw":"良好"}, {"sx":"优秀"}, {"wl": "及格"}] },
{"name":"D", "sex":"M", "result": [{"yw":"良好"}, {"sx":"及格"}, {"wl": "优秀"}] },
{"name":"F", "sex":"M", "result": [{"yw":"优秀"}, {"sx":"良好"}, {"wl": "良好"}] }
];
// 第一次过滤,获取男同学信息
var manStudents = collect.filter(students, (stu) -> {
return string.indexOf("F", stu.sex) != -1;
});
/**
* manStudents结果集
* {"name":"A", "sex":"F", "result": [{"yw":"优秀"}, {"sx":"优秀"}, {"wl": "良好"}] },
* {"name":"C", "sex":"F", "result": [{"yw":"良好"}, {"sx":"优秀"}, {"wl": "及格"}] },
**/
// 第二次过滤,获取男同学中成绩为优秀的科目
var mans = manStudents =>[{
"name": #.name,
"result": collect.filter(#.result, (res) -> {
if( res.yw == "优秀" || res.sx == "优秀" || res.wl == "优秀" ){
return true;
}else{
return false;
}
})
}];
// 返回结果集
return mans;
// 结果集
{
"code": 200,
"data": [
{
"name": "A",
"result": [
{
"yw": "优秀"
},
{
"sx": "优秀"
}
]
},
{
"name": "C",
"result": [
{
"sx": "优秀"
}
]
}
],
"msg": "操作成功"
}