如何从 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"))
我有 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"))