Конвертировать многоуровневый массив в словарь - PullRequest
0 голосов
/ 24 июня 2019

У меня есть следующие модели: Car и CarType, и я создаю множество автомобилей ниже.Я хотел бы преобразовать этот массив автомобилей в словарь [String: [Car]]

struct Car {
   let carId: Int
   let carName: String
   let carType: [Category]

   init(carId: Int, carName: String, carType: [Category]) {
                self.carId = carId
                self.carName = carName
                self.carType = carType
   }
}

struct Category {
   let categoryId: Int
   let categoryName: String
}

var cat1 = Category(categoryId: 123, categoryName: "Truck")
var cat2 = Category(categoryId: 123, categoryName: "Family")

let car1 = Car(carId: 1, carName: "Ford", carType: [cat1])
let car2 = Car(carId: 2, carName: "Honda", carType: [cat1, cat2])

let cars = [car1, car2]

Я хотел бы преобразовать массив автомобилей в [String: [Car]] словарь.

1 Ответ

2 голосов
/ 24 июня 2019

Есть API: Словарь (группировка: по:)

let groupedCars = Dictionary(grouping: cars, by: {$0.carName})
...