Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用reduce增加对象数组中的关键点?_Javascript_Arrays_Object_Iterator_Reduce - Fatal编程技术网

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

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

我试图减少一个对象数组,使其具有一个boss键,并增加伙伴忠诚度。但是,我一直得到一个没有唯一键的对象数组。我尝试检查对象键是否在那里,然后检查对象键是否在那里。但尚未成功增加Sidekick忠诚度值

预期产出

[
  { 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
}
];

请在问题中添加
助手