Javascript 如何使用reduce增加对象数组中的关键点?
我试图减少一个对象数组,使其具有一个boss键,并增加伙伴忠诚度。但是,我一直得到一个没有唯一键的对象数组。我尝试检查对象键是否在那里,然后检查对象键是否在那里。但尚未成功增加Sidekick忠诚度值 预期产出Javascript 如何使用reduce增加对象数组中的关键点?,javascript,arrays,object,iterator,reduce,Javascript,Arrays,Object,Iterator,Reduce,我试图减少一个对象数组,使其具有一个boss键,并增加伙伴忠诚度。但是,我一直得到一个没有唯一键的对象数组。我尝试检查对象键是否在那里,然后检查对象键是否在那里。但尚未成功增加Sidekick忠诚度值 预期产出 [ { bossName: 'Jafar', sidekickLoyalty: 3 }, { bossName: 'Ursula', sidekickLoyalty: 20 }, { bossName: 'Scar', sidekickLoyalty: 16 } ] bos
[
{ bossName: 'Jafar', sidekickLoyalty: 3 },
{ bossName: 'Ursula', sidekickLoyalty: 20 },
{ bossName: 'Scar', sidekickLoyalty: 16 }
]
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', 'Ed'],
strengths: ['strategy', 'suspicion'],
boss: 'Scar',
loyaltyToBoss: 5
},
{
name: 'Ed',
associates: ['Shenzi', 'Banzai'],
strengths: ['unknown'],
boss: 'Scar',
loyaltyToBoss: 7
},
{
name: 'Flotsam',
associates: ['Jetsam'],
strengths: ['spying', 'manipulation', 'flipping boats'],
boss: 'Ursula',
loyaltyToBoss: 10
},
{
name: 'Jetsam',
associates: ['Flotsam'],
strengths: ['spying', 'manipulation', 'flipping boats'],
boss: 'Ursula',
loyaltyToBoss: 10
},
{
name: 'Iago',
associates: [],
strengths: ['mimicry', 'critical'],
boss: 'Jafar',
loyaltyToBoss: 3
}
];
当前结果
[
{ bossName: 'Jafar', sidekickLoyalty: 3 },
{ bossName: 'Ursula', sidekickLoyalty: 10 },
{ bossName: 'Ursula', sidekickLoyalty: 10 },
{ bossName: 'Scar', sidekickLoyalty: 7 },
{ bossName: 'Scar', sidekickLoyalty: 5 },
{ bossName: 'Scar', sidekickLoyalty: 4 }
]
代码尝试
[
{ bossName: 'Jafar', sidekickLoyalty: 3 },
{ bossName: 'Ursula', sidekickLoyalty: 20 },
{ bossName: 'Scar', sidekickLoyalty: 16 }
]
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', 'Ed'],
strengths: ['strategy', 'suspicion'],
boss: 'Scar',
loyaltyToBoss: 5
},
{
name: 'Ed',
associates: ['Shenzi', 'Banzai'],
strengths: ['unknown'],
boss: 'Scar',
loyaltyToBoss: 7
},
{
name: 'Flotsam',
associates: ['Jetsam'],
strengths: ['spying', 'manipulation', 'flipping boats'],
boss: 'Ursula',
loyaltyToBoss: 10
},
{
name: 'Jetsam',
associates: ['Flotsam'],
strengths: ['spying', 'manipulation', 'flipping boats'],
boss: 'Ursula',
loyaltyToBoss: 10
},
{
name: 'Iago',
associates: [],
strengths: ['mimicry', 'critical'],
boss: 'Jafar',
loyaltyToBoss: 3
}
];
数据集
[
{ bossName: 'Jafar', sidekickLoyalty: 3 },
{ bossName: 'Ursula', sidekickLoyalty: 20 },
{ bossName: 'Scar', sidekickLoyalty: 16 }
]
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', 'Ed'],
strengths: ['strategy', 'suspicion'],
boss: 'Scar',
loyaltyToBoss: 5
},
{
name: 'Ed',
associates: ['Shenzi', 'Banzai'],
strengths: ['unknown'],
boss: 'Scar',
loyaltyToBoss: 7
},
{
name: 'Flotsam',
associates: ['Jetsam'],
strengths: ['spying', 'manipulation', 'flipping boats'],
boss: 'Ursula',
loyaltyToBoss: 10
},
{
name: 'Jetsam',
associates: ['Flotsam'],
strengths: ['spying', 'manipulation', 'flipping boats'],
boss: 'Ursula',
loyaltyToBoss: 10
},
{
name: 'Iago',
associates: [],
strengths: ['mimicry', 'critical'],
boss: 'Jafar',
loyaltyToBoss: 3
}
];
请在问题中添加
助手
。