我有以下结构中的对象列表,这些对象已经按顶层的名称属性排序。
[{
name: 'name1'
team: 'team1'
statuses: [{ time: 'day1', color: 'green', message: 'looks good'}, { time: 'day2', color: 'green', message: 'looks good'}]
},
{
name: 'name2'
team: 'team2'
statuses: [{ time: 'day1', color: 'yellow', message: 'mild concern'}, { time: 'day2', color: 'red', message: 'critical issue'}]
},
{
name: 'name3'
team: 'team3'
statuses: [{ time: 'day1', color: 'orange', message: 'mild concern'}, { time: 'day2', color: 'orange', message: 'potential issue'}]
}]
上面的列表应该根据状态列表中最后一个对象的颜色属性使用自定义排序顺序(红色、橙色、绿色)进行排序。预期列表包含此顺序的对象 team2、team3、team1,如果有多个相同颜色,则它应该在顶层保留名称属性的排序。
我尝试按以下方式使用 reduce 函数并将它们组合在一起,但没有得到预期的输出。
teams.reduce((r, t) => {
if(t.statuses[1].color === 'red');
r.push(t)
return r;
}, { [] })
teams.reduce((r, t) => {
if(t.statuses[1].color === 'orange');
r.push(t)
return r;
}, { [] })
teams.reduce((r, t) => {
if(t.statuses[1].color === 'green');
r.push(t)
return r;
}, { [] })
芜湖不芜
人到中年有点甜
相关分类