首页 > 解决方案 > 如何使用函数式编程更改 Scala 列表中的列表

问题描述

想象一下我有一个list[list[object]] 并且我想得到一个list[list[object.field]]

我怎么能通过函数式编程做到这一点

就像val list = list[list[object]] 我试过一样

val newList = list(_)(_1.map(object.field))

但这给了我一个错误,我很困惑

我刚开始函数式编程和 scala,所以这个语句可能有一些完全不合逻辑的东西

标签: scala

解决方案


您需要map按以下方式使用

  case class Obj(field: String)
  val list = List[List[Obj]]()

  val fields: List[List[String]] = list.map(_.map(_.field))

或相同

  val fields: List[List[String]] = list.map(innerList => innerList.map(obj => obj.field))

或者如果你想要一个扁平的字段列表

  val fields: List[String] = list.flatMap(_.map(_.field))

推荐阅读