How to filter None's out of List[Option]?
If you want to get rid of the options at the same time, you can use flatten
:
scala> someList.flatten
res0: List[String] = List(Hello, Goodbye)
someList.filter(_.isDefined)
if you want to keep the result type as List[Option[A]]
The cats
library also has flattenOption
, which turns any F[Option[A]]
into an F[A]
(where F[_]
is a FunctorFilter
)
import cats.implicits._
List(Some(1), Some(2), None).flattenOption == List(1, 2)