【问题标题】:Mapping over a Seq to filter映射到 Seq 以进行过滤
【发布时间】:2014-04-06 03:12:20
【问题描述】:

我有一个 Seq[文档]。

Document 有一个 val 字段,它是一个字符串,可以这样做

d.typ   ---> which will be a String

我想对 Seq 进行映射和过滤,以生成仅包含 typ 字段等于特定字符串的文档的新 Seq。到目前为止,我有这个:

def getNewProducts(docs: Seq[Document]):Seq[Document] = {

   docs.map(_.typ == "new-product")

}

我知道我需要为 map 函数提供一个谓词过滤器,但不知道如何做。万分感谢。

【问题讨论】:

  • 如果您确实需要mapfilter,那么collect 就是您想要的。它需要一个PartialFunction(通常是匹配块状的部分函数文字)。过滤基于定义了偏函数的输入,映射基于这些情况的结果。
  • 看起来您只想过滤而不是映射。映射意味着您将集合中的每个元素转换为不同的东西,因此您获得了转换后元素的集合。

标签: scala


【解决方案1】:

寻找这个?

docs.filter(_.typ == "new-product")

【讨论】:

    猜你喜欢
    • 2019-01-05
    • 2014-08-21
    • 2022-07-25
    • 1970-01-01
    • 2014-10-02
    • 1970-01-01
    • 1970-01-01
    • 2021-03-15
    • 1970-01-01
    相关资源
    最近更新 更多