gpt4 book ai didi

javascript - 根据所选选项动态使用不同的数据对象

转载 作者:行者123 更新时间:2023-11-30 13:49:46 25 4
gpt4 key购买 nike

我有一个包含 2 个数组(团队名称列表)的数据对象

const data = {
Liga: ['Alaves','Atletico', 'Barcelona', 'Betis'],
Premier: ["Arsenal", "Chelsea", "Everton", 'Liverpool']
};

根据我选择的值(Liga 或 Premier),我得到了我的球队名单。

这些球队有两个不同的数据得分结果scoresligascorespremier

const scoresliga = [
{ day: '0', Alaves: -6, Atletico: -1, Barcelona: -2, Betis: -6},
{ day: '1', Alaves: -7, Atletico: 1, Barcelona: -2, Betis: -6}
];

const scorespremier = [
{ day: '0', Arsenal: -6, Chelsea: -1, Everton: -2, Liverpool: -6},
{ day: '1', Arsenal: -7, Chelsea: 1, Everton: -2, Betis: -6}
];

我的问题是我必须找到一种方法,当我选择“Liga”时,我必须使用 scoresliga 对象,如果我选择“Premier”,我必须使用 scorespremier

这也将解决我在计算团队平均值时遇到的问题,目前它不是一般函数。

这是使用 scoresliga 数据对象的函数片段,但它需要是 Ligas(Premier 和 Liga)的共享函数。

const getAverage = team => {

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

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

我已经复制了我的案例,看看here

最佳答案

只需向 getAverage 添加额外的属性

const getAverage = (league, team) => {

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

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

Edit Recharts Examples

同时在乐谱中创建一些映射

const scores = {
Liga: [
{ day: "0", Alaves: -6, Atletico: -1, Barcelona: -2, Betis: -6 },
{ day: "1", Alaves: -7, Atletico: 1, Barcelona: -2, Betis: -6 }
],
Premier: [
{ day: "0", Arsenal: -6, Chelsea: -1, Everton: -2, Liverpool: -6 },
{ day: "1", Arsenal: -7, Chelsea: 1, Everton: -2, Betis: -6 }
]
};

在 Chart.js 中

<span>{getAverage(scores[this.state.selectedLeague], this.state.selectedTeam)}</span>

另外,更新

handleLeagueChange = event => {
const selectedLeague = event.target.value;
this.setState({ selectedLeague: selectedLeague }, () => {
this.setState({ selectedTeam: data[selectedLeague][0] });
});
};

关于javascript - 根据所选选项动态使用不同的数据对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58502439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com