如何使用reduce增加对象数组中的键?

问题描述

我正在尝试减少一组对象以拥有一个老板键并增加同伴的忠诚度。但是,我不断获得没有唯一键的对象数组。我尝试检查对象密钥是否存在,以及是否增加了对象sidekickLoyalty。但是尚未成功增加sidekickLoyalty值。

预期产量

[
  { bossName: 'Jafar',sidekickLoyalty: 3 },{ bossName: 'Ursula',sidekickLoyalty: 20 },{ bossName: 'Scar',sidekickLoyalty: 16 }
]

当前结果

[
 { bossName: 'Jafar',sidekickLoyalty: 10 },sidekickLoyalty: 7 },sidekickLoyalty: 5 },sidekickLoyalty: 4 }
]

代码尝试

bossLoyalty() {
  let bossyBoss = sidekicks.reduce((totalLoyalty,sidekick) => {
  let bossObject = {
    bossName: null,sidekickLoyalty: 0
  };
  if (!bossObject.bossName) {
    bossObject.bossName = sidekick.boss;
  }
  if(bossObject.bossName === sidekick.boss) {
    bossObject.sidekickLoyalty += sidekick.loyaltyToBoss;
  }
  totalLoyalty.unshift(bossObject);
  return totalLoyalty;
},[])
const result = bossyBoss;
return result;
}

数据集

const sidekicks = [
{
  name: 'Shenzi',associates: ['Banzai','Ed'],strengths: ['leadership','sass'],boss: 'Scar',loyaltyToBoss: 4
},{
  name: 'Banzai',associates: ['Shenzi',strengths: ['strategy','suspicion'],loyaltyToBoss: 5
},{
  name: 'Ed','Banzai'],strengths: ['unkNown'],loyaltyToBoss: 7
},{
  name: 'Flotsam',associates: ['Jetsam'],strengths: ['spying','manipulation','flipping boats'],boss: 'Ursula',loyaltyToBoss: 10
},{
  name: 'Jetsam',associates: ['Flotsam'],{
  name: 'Iago',associates: [],strengths: ['mimicry','critical'],boss: 'Jafar',loyaltyToBoss: 3
}
];

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)