如何解决如何使用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 举报,一经查实,本站将立刻删除。