我有这样的结构:
List(
Model("Name" -> "first"
"Items" -> Map("a"->1,"b"->2)),
Model("Name" -> "Second",
"Items" -> Map("d"->2,"e"->3)))
我正在努力获得以下项目的总和:
List(
Model("Name" -> "first"
"Items" -> 3,
Model("Name" -> "Second",
"Items" -> 5)
我知道如何以简短的scala方式做到这一点吗?
感谢
答案 0 :(得分:3)
假设Model
是scala.Product
的子类型,这样的事情就可以解决问题。
modelList.map { m =>
m.copy(
items = m.items.values.foldLeft(0) { _ + _ }
)
}