【发布时间】:2020-09-03 17:41:46
【问题描述】:
我有一个包含曲棍球比赛的对象数组,我需要通过它们在另一个对象数组中创建记分牌。
我给你举个例子。
我会有这样的数组:
let array = [
{team1:"Toronto", team2:"Oilers", score1:5, skore:0},
{team1:"Toronto", team2:"Rangers", score1:3, skore:1},
{team1:"Toronto", team2:"Penguins", score1:0, skore:1},
{team1:"Oilers", team2:"Rangers", score1:2, skore:2},
{team1:"Oilers", team2:"Penguins", score1:2, skore:3},
{team1:"Rangers", team2:"Penguins", score1:0, skore:0}
]
而且我需要一个可以让我得到这样的数组的函数:
let array2 = [
{Team:"Toronto", Wins:2, Draws:0, Losses:1, ShotGoals:8, RecievedGoals:2},
{Team:"Oilers", Wins:0, Draws:1, Losses:2, ShotGoals:4, RecievedGoals:10},
{Team:"Penguins", Wins:1, Draws:1, Losses:2, ShotGoals:2, RecievedGoals:4},
{Team:"Rangers", Wins:1, Draws:2, Losses:0, ShotGoals:3, RecievedGoals:2},
]
我尝试使用 forEach 遍历数组并推送新的或更改数组 2 中的现有团队,但无法让它工作,因为我正在创建的数组 2 正在改变,随着循环的进行。它还需要是动态的,因此如果第一个数组被扩展等它仍然可以工作,而我现在无法让它工作。
我假设我将不得不使用一些数组方法,但我似乎无法弄清楚是哪一种以及如何使用,因为我对此很陌生。
非常感谢任何帮助。谢谢你。
【问题讨论】:
-
对使用团队名称作为 groupBy 对象属性进行“groupBy”进行一些研究。然后,您将需要一些逻辑来比较 2 个分数,以将赢/输和平局相加
-
感谢您的评论。我做了一点谷歌搜索,这看起来和我正在寻找的完全一样。虽然很难说逻辑将如何实现,但我会试一试。干杯。
-
我尝试了
标签: javascript arrays loops object methods