【发布时间】:2019-01-30 12:47:53
【问题描述】:
我有一个array 的MyData 对象(MyData 是一个struct):
[
MyData(id: 3, locale: "en", title: "p1", date: "10/15/2019"),
MyData(id: 3, locale: "de", title: "p2", date: "11/12/2019"),
MyData(id: 32, locale: "fr", title: "free", date: "10/11/2019"),
MyData(id: 15, locale: "de", title: "free", date: "10/11/2019"),
MyData(id: 19, locale: "de", title: "p1", date: "11/10/2019"),
MyData(id: 19, locale: "de", title: "p2", date: "11/10/2019"),
MyData(id: 19, locale: "de", title: "p3", date: "11/10/2019"),
]
我想根据id 键对这个数组进行分组(甚至故意创建一个新数组)。
结果应该是这样的:
[
[MyData(id: 3, locale: "en", title: "p1", date: "10/15/2019"), MyData(id: 3, locale: "de", title: "p2", date: "11/12/2019")],
MyData(id: 32, locale: "fr", title: "free", date: "10/11/2019"),
MyData(id: 15, locale: "de", title: "free", date: "10/11/2019"),
[MyData(id: 19, locale: "de", title: "p1", date: "11/10/2019"),MyData(id: 19, locale: "de", title: "p2", date: "11/10/2019"),MyData(id: 19, locale: "de", title: "p3", date: "11/10/2019")]
]
即:具有相同id的数组应该组成一个新数组。
当然,我可以简单地循环第一个数组并创建第二个数组,但我想知道 Swift 是否可以用它的过滤器做些什么。 任何帮助表示赞赏。
【问题讨论】:
-
离题,不建议将结构命名为
Data -
你不是跑题,别担心,这是一个明智的建议:我的结构的真实名称甚至不是数据,我在这里写数据是为了帮助人们更好地理解这个问题。我将其更改为 MyData