我需要通過List[(A,B,C)]
來生成html報告。具體來說,如何分組?
List[(Schedule,GameResult,Team)]
計劃包含gameDate財產,我需要通過組上得到
Map[JodaTime, List(Schedule,GameResult,Team)]
,我用它來顯示gameDate錶行頭。很容易的:
val data = repo.games.findAllByDate(fooDate).groupBy(_._1.gameDate)
現在(對我來說)棘手位,如何進一步細化分組,以便通過比賽的結果對啓用映射?爲了澄清,每個GameResult包含一個團隊的遊戲「版本」(即分數,位置等),與對手團隊共享一個共同的Schedule遊戲ID。
基本上,我需要在一排顯示遊戲結果的結果爲:
3 London Dragons vs. Paris Frogs 2
上進行分組gameDate讓我做這樣的事情:
data.map{case(date,games) =>
// game date row headers
<tr><td>{date.toString("MMMM dd, yyyy")}</td></tr>
// print out game result data rows
games.map{case(schedule,result, team)=>
...
// BUT (result,team) slice is ungrouped, need grouped by Schedule gameID
}
}
在舊版本的現有應用程序的(PHP)我曾經
for($x = 0; $x < $this->gameCnt; $x = $x + 2) {...}
但我更願意引用變量名和n OT了過來,背稍後WTF-是 - 即誘導:
games._._2(rowCnt).total games._._3(rowCnt).name games._._1(rowCnt).location games._._2(rowCnt+1).total games._._3(rowCnt+1).name
也許ZIP或加倍彌補(T1 < - 數據;數據)收益率(?)或其他東西完全可以做到這一點。無論如何,有一個簡潔的解決方案,只是不來找我現在...
爲什麼不只是做另一個組? games.groupBy(_._ 1.gameID) – Arjan
因爲它不配對gameID – virtualeyes