React - 在对象之间定义更大的字符串

我正在计算数组中每个对象(团队)的平均分数。


这是我的数据结构:


const scores = [

  { day: "1", Barcelona: 1, Real: 3, Valencia: 0 },

  { day: "2", Barcelona: 4, Real: 6, Valencia: 3 },

  { day: "3", Barcelona: 7, Real: 7, Valencia: 3 },

  { day: "4", Barcelona: 7, Real: 8, Valencia: 6 }

];

这就是我计算平均值的方式


const getAverage = team => {

  if (isNaN(scores[0][team])) return null;


  return scores.map(x => x[team]).reduce((a, c) => a + c) / scores.length;

}; 

我需要建立人数越多的对象队伍越强。我怎样才能做到这一点 ?


实力较强的球队是平均水平较高的球队。


这里我做了一个原型来重现场景:https : //codesandbox.io/s/recharts-examples-y0y7q


呼啦一阵风
浏览 155回答 2
2回答

茅侃侃

从这样的团队数组中获取 maxAverage:this.state = {    homeCity: "Barcelona",    awayCity: "Valencia"}const scores = [    { day: "1", Barcelona: 1, Real: 3, Valencia: 0 },    { day: "2", Barcelona: 4, Real: 6, Valencia: 3 },    { day: "3", Barcelona: 7, Real: 7, Valencia: 3 },    { day: "4", Barcelona: 7, Real: 8, Valencia: 6 }  ];const getAverage = team => {    if (isNaN(scores[0][team])) return null;    return scores.map(x => x[team]).reduce((a, c) => a + c) / scores.length;};const maxAverage = teams => {    return teams.map(team => {        return {            team:team,             avg: getAverage(team)        }    }).reduce((a,b)=>a.avg>b.avg?a:b).team}console.log(maxAverage([this.state.homeCity,this.state.awayCity]));

潇潇雨雨

您可以扩展您的代码,循环遍历第一个元素以获取所有键,过滤出日期键,以便我们留下所有团队名称,映射团队名称并获取平均值然后进行排序const scores = [  { day: "1", Barcelona: 1, Real: 3, Valencia: 0 },  { day: "2", Barcelona: 4, Real: 6, Valencia: 3 },  { day: "3", Barcelona: 7, Real: 7, Valencia: 3 },  { day: "4", Barcelona: 7, Real: 8, Valencia: 6 }];const getAverage = team => {  if (isNaN(scores[0][team])) return null;  return scores.map(x => x[team]).reduce((a, c) => a + c) / scores.length};let stronger = Object.entries(scores[0])                     .filter(([key, value]) => key !== 'day')                     .map(([key, value]) => [key, getAverage(key)])                     .sort((a, b) => b[1] - a[1])console.log(stronger)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript