У меня есть массив структур, в которых идентификатор компонента может быть одинаковым для двух или более элементов.Код для того же, как показано ниже:
struct Cart {
var bundleId: Int = 0
var ingredientId: Int = 0
}
var array:[Cart] = []
array.append(Cart(bundleId: 1, ingredientId: 1))
array.append(Cart(bundleId: 2, ingredientId: 2))
array.append(Cart(bundleId: 3, ingredientId: 2))
array.append(Cart(bundleId: 4, ingredientId: 5))
array.append(Cart(bundleId: 5, ingredientId: 5))
array.append(Cart(bundleId: 6, ingredientId: 6))
print(array)
То, что я ожидаю в качестве вывода, является массивом с элементами, сгруппированными в соответствии с одним и тем же ингредиентом, например
[
[Cart(bundleId: 1, ingredientId: 1)],
[Cart(bundleId: 2, ingredientId: 2),Cart(bundleId: 3, ingredientId: 2)],
[Cart(bundleId: 4, ingredientId: 5),Cart(bundleId: 5, ingredientId: 5)],
[Cart(bundleId: 6, ingredientId: 6)],
............
.......
]
PS: ингридиенты ингридиентов не фиксированы, и у нас нет отдельного массива для них.
Как этого добиться, используя функции высшего порядка?