题目
给定一组工作,每个工作有困难程度和报酬两个属性,每个工作可以被选择任意次数,给定一组带有能力程度的人员,返回每个人员能够胜任且报酬最高的工作
- 将工作先按困难程度排序,如果工作困难程度相等,再按照报酬排序
- 排序完成后,只保留同一组任务中第一个,不同组任务,去掉难度增加报酬没有增加的任务,最后根据每个人员返回最接近其能力的工作即可
function process(n) {}
const arr = [
{ hard: 3, money: 5 },
{ hard: 2, money: 7 },
{ hard: 9, money: 10 },
{ hard: 1, money: 4 },
{ hard: 2, money: 6 },
{ hard: 3, money: 3 },
{ hard: 1, money: 1 },
{ hard: 2, money: 8 },
];
console.log(
arr.sort((a, b) => {
if (a.hard !== b.hard) {
return a.hard - b.hard;
} else {
return a.money - b.money;
}
})
);
// 排序后:a) 相同组保留第一个; b) 不同组难度增加,报酬也增加的保留,否则删掉