如何将一个对象数组分解为一个数组的数组?



我有一个购买对象数组[purchase]定义为:

struct Purchase {
let count: Int
let food: String
}

如何将这个购买数组转换为具有相同计数(Int)的购买数组的数组?

例如:

let input: [Purchase(count: 2, food: "popcorn"), Purchase(count: 3, food: "popcorn"),  Purchase(count: 2, food: "soda"),
Purchase(count: 2, food: "popcorn"), Purchase(count: 2, food: "soda")]
output: [[Purchase]] = [[Purchase(count: 2, food: "popcorn"), Purchase(count: 2, food: "soda"),
Purchase(count: 2, food: "popcorn"), Purchase(count: 2, food: "soda")], [Purchase(count: 3, food: "soda")]

答案在评论中,但它可以看起来更干净一些。

Dictionary(grouping: input, by: .count).map(.value)

最新更新