Javascript 分红
我列出了一系列将获得以下奖励的员工: 常数工作者=[ {姓名:约翰,奖金:1000,优先级:1}, {姓名:安迪,奖金:2000,优先级:2}, {姓名:比尔,奖金:2200,优先级:3}, {name::Carry,奖品:3100,优先级:4}, {名称:Asawa,奖金:4000,优先级:5} ]; // 数组工作程序未修复 让TotalPrize=7100//基金奖金 问题:我想为1->2->3上面的列表减去TotalPrize。。。为了让员工按顺序获得全部奖金,请按优先级排序: 约翰:1000满 安迪:2000满 账单:2200满 进位:1900在上面的列表中,进位必须是3100,但因为TotalPrize=7100已经提前为剩余的前三个1900进行了划分 Asawa:0因为前4个人的钱都被分了Javascript 分红,javascript,arrays,node.js,Javascript,Arrays,Node.js,我列出了一系列将获得以下奖励的员工: 常数工作者=[ {姓名:约翰,奖金:1000,优先级:1}, {姓名:安迪,奖金:2000,优先级:2}, {姓名:比尔,奖金:2200,优先级:3}, {name::Carry,奖品:3100,优先级:4}, {名称:Asawa,奖金:4000,优先级:5} ]; // 数组工作程序未修复 让TotalPrize=7100//基金奖金 问题:我想为1->2->3上面的列表减去TotalPrize。。。为了让员工按顺序获得全部奖金,请按优先级排序: 约翰:1
谁有解决方案并帮助我解决问题,2周的绝望。因此,请检查下面的代码,希望对您有所帮助
let totalPrize = 7100;
const workers = [
{
name: "John",
prize: 1000,
prioritize: 1
}, {
name: "Andy",
prize: 2000,
prioritize: 2
}, {
name: "Bill",
prize: 2200,
prioritize: 3
}, {
name: "Carry",
prize: 3100,
prioritize: 4
}, {
name: "Asawa",
prize: 4000,
prioritize: 5
}
];
const sortedWorkers = workers.sort((obj1, obj2) => obj1.prioritize > obj2.prioritize);
let finalResult = [];
sortedWorkers.map(worker => {
if (totalPrize >= worker.prize) {
finalResult.push({
[worker.name]: worker.prize,
});
totalPrize -= worker.prize;
} else {
finalResult.push({
[worker.name]: 0,
});
}
});
console.log(finalResult);
谢谢你的回复,我已经尝试了各种选择,但一直没有找到最终的答案,我在nodejsGreat新手,这正是我正在寻找的。非常感谢你,很高兴能帮助你。