【发布时间】:2017-07-21 09:19:46
【问题描述】:
假设我有一个对象:
struct Foo {
let id: Int
let bar: Int
}
现在我在一个数组中有 5 个这样的对象:
let foo1 = Foo(id: 1, bar: 1)
let foo2 = Foo(id: 2, bar: 1)
let foo3 = Foo(id: 3, bar: 2)
let foo4 = Foo(id: 4, bar: 3)
let foo5 = Foo(id: 5, bar: 3)
let fooArray = [foo1, foo2, foo3, foo4, foo5]
过滤具有唯一bar 值的foo 对象的干净方法是什么?
// Desired output
let filteredArray = [foo1, foo3, foo4]
假设有几百到几千个对象需要迭代。
【问题讨论】:
-
如何使用这样的过滤器:
fooArray.filter {($0.bar.contains(searchBar))} -
你的问题的标题和正文似乎不同——你有字典数组还是结构数组?
-
我有一个结构数组,尽管这个问题的答案并不特别适用于结构类型。如果您感到困惑,请随意将标题编辑为更符合语义的内容,我对提出更好的标题没有信心。
标签: arrays swift dictionary filter