Javascript 分红

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

我列出了一系列将获得以下奖励的员工:

常数工作者=[ {姓名:约翰,奖金: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个人的钱都被分了
谁有解决方案并帮助我解决问题,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新手,这正是我正在寻找的。非常感谢你,很高兴能帮助你。