如何从 Scala 中的地图列表中获取逗号分隔值?

How to get comma separated values from List of Maps in Scala?

我有 List[Map [String, String]] 类型的 listMap1 变量,我希望与键 'k1' 关联的所有值作为一个字符串,值以逗号分隔

import fiddle.Fiddle, Fiddle.println
import scalajs.js

@js.annotation.JSExport
object ScalaFiddle {

  var m1:Map[String,String] = Map(("k1"->"v1"), ("k2"->"vv1")) 
  var m2:Map[String,String] = Map(("k1"->"v2"),("k2"->"vv2"))
  var m3:Map[String,String] = Map(("k1"->"v3"),("k2"->"vv3"))

  var listMap1 = List(m1,m2,m3)
  var valList = ??  // need all values assoicated with k1 like -->  v1,v2,v3...
}

可以吗??

  val r = listMap1.filter(l => l.contains("k1") ).map(r => r("k1") ).mkString(",")

一个简单的方法是:

listMap1.flatMap(_.get("k1")).mkString(",")

请注意,如果您正在生成 CSV 数据并且关联值包含 ,s,例如,这将不起作用Map(("k1" -> "\some, string"))