Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- modelA.name = "abc"
- modelB.name = "efg"
- modelC.name = "hij"
- modelD.name = "abc"
- modelE.name = "efg"
- struct Model {
- var name: String?
- }
- let allModelsArray = [Model(name: "abc"), Model(name: "efg"), Model(name: "hij"), Model(name: "abc"), Model(name: "efg"), Model(name: "efg"), Model(name: "hij")]
- let abcModelsArray = allModelsArray.filter { $0.name == "abc" }
- // [Model(name: Optional("abc")), Model(name: Optional("abc"))]
- let hijModelsArray = allModelsArray.filter { $0.name == "hij" }
- // [Model(name: Optional("hij")), Model(name: Optional("hij"))]
- struct Model {
- var type : String
- var name : String
- }
- var modelA = Model(type: "A", name: "abc")
- var modelB = Model(type: "B", name: "efg")
- var modelC = Model(type: "C", name: "abc")
- var modelD = Model(type: "D", name: "efg")
- let models = [modelA,modelB,modelC,modelD]
- let names = Set(models.map({return $0.name}))
- var groupedModels : [String:[Model]] = [:]
- for var name in names {
- let elements = models.filter({$0.name == name})
- groupedModels[name] = elements
- }
- let a = [modelA, modelB, modelC, modelD, modelE]
- let arr = a.reduce([:]) { (result, currentModel) -> [String: [Model]] in
- var mutableDic = result
- if ((mutableDic[currentModel.name]) != nil) {
- mutableDic[currentModel.name]?.append(currentModel)
- } else {
- mutableDic[currentModel.name] = [currentModel]
- }
- return mutableDic
- }
- var mutableDic = [String : [Model]]()
- for aModel in a {
- if ((mutableDic[aModel.name]) != nil) {
- mutableDic[aModel.name]?.append(aModel)
- } else {
- mutableDic[aModel.name] = [aModel]
- }
- }
- var d[String: [Model]]
- for i in array {
- if d[i.name] == nil { // Don't repeat if already found
- let m = array.filter { $0.name == i.name }
- if m.count > 1 {
- d[i.name] = m
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement