【问题标题】:Swift [map] return array containing values of specific property [closed]Swift [map] 返回包含特定属性值的数组 [关闭]
【发布时间】:2020-09-23 07:14:20
【问题描述】:

假设我有一个对象数组

let persons = [Person]

struct Person { 
    let name: String
    let position: Int
}

我想返回包含位置等于 1 的人名的字符串数组 [String]。 是否有任何方法可以使用 map/flatmap/reduce 函数来做到这一点?

【问题讨论】:

  • 在发布这样的问题时,您应该包括自己解决问题的尝试,而不是将 stackoverlow 视为免费的代码编写服务。

标签: swift flatmap


【解决方案1】:

要避免两个步骤,请使用compactMap

let positionOneNames = persons.compactMap{$0.position == 1 ? $0.name : nil }

【讨论】:

  • 谢谢!这正是我需要的
  • 好方法!随着代码变得更复杂,可读性降低。
【解决方案2】:

方法如下:

let names = persons
    .filter { $0.position == 1 }
    .map { $0.name }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多