我有一个类似的数组
@Published var allGroup: [GroupModel] = [
GroupModel(id: UUID().uuidString, groupId: "", groupName: "Personale", subscribers: [], groupCurrency: "", groupCreatedBy: "", groupCreditCards: [], creationDate: Timestamp(date: Date.now), groupColorRed: 0, groupColorBlu: 0, groupColorGreen: 0),
GroupModel(id: UUID().uuidString, groupId: "", groupName: "Famiglia", subscribers: [], groupCurrency: "", groupCreatedBy: "", groupCreditCards: [], creationDate: Timestamp(date: Date.now), groupColorRed: 0, groupColorBlu: 0, groupColorGreen: 0)
]
我想排序并将名为Famiglia 的组作为数组的第一项
我试过这样做,但给了我错误:因为在循环中需要"GroupModel"符合"Sequence">
func sortGroupList(groups: [GroupModel]) -> [GroupModel] {
var startGroups = groups
for group in startGroups {
for groupName in group {
if groupName.value == "Famiglia" {
startGroups.removeAll(where: { $0 == group })
startGroups.insert(group, at: 0)
}
}
}
}
如何可能做到这一点?感谢
你可以试试这个:
func sortGroupList(groups: [GroupModel]) -> [GroupModel] {
return groups.sorted(by: { first, _ in
first.groupName == "Famiglia"
})
}
并像这样使用:
var result = sortGroupList(groups: allGroup)
print("n---> result: (result)")