需求
一个值班的列表,是对象数据,示例如下:
[
{ user: "张三", seg: "晚上", role: "领导" },
{ user: "李四", seg: "白天", role: "科室" },
...
]
其中,seg表示值班的时间段,role表示值班角色,user是值班人姓名
要求:先按值班角色排序,再按值班时间段排序
值班时间段、值班角色如下:
const rolesBy=['领导','科室','值班员','驾驶员','接待领导','接待人员'] // 值班角色
const segsBy=['全天','白天','上午','下午','晚上'] // 值班时间段
实现
比较函数如下
const sortFunc = (x,y) => {
if(x.role==y.role) {
return segsBy.indexOf(x.seg)-segsBy.indexOf(y.seg)
}
return rolesBy.indexOf(x.role)-rolesBy.indexOf(y.role)
}