Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save lainara6-zz/d86895c23d5d3af876793dd52400a78a to your computer and use it in GitHub Desktop.

Select an option

Save lainara6-zz/d86895c23d5d3af876793dd52400a78a to your computer and use it in GitHub Desktop.

Revisions

  1. @lainara6 lainara6 created this gist Aug 19, 2019.
    37 changes: 37 additions & 0 deletions array_duplicate_check_by_property.swift
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,37 @@
    import UIKit

    struct People {
    var id: String!
    var name: String!
    }


    var objects: [People] = []
    objects.append(People(id: "1", name: "A"))
    objects.append(People(id: "2", name: "b"))
    objects.append(People(id: "1", name: "c"))
    objects.append(People(id: "4", name: "d"))
    objects.append(People(id: "5", name: "e"))
    objects.append(People(id: "6", name: "e"))
    objects.append(People(id: "7", name: "f"))
    objects.append(People(id: "8", name: "5"))
    objects.append(People(id: "9", name: "5"))
    objects.append(People(id: "1", name: "r"))

    objects.forEach {
    print($0.id!, "----", $0.name!)
    }

    var pureobjects = objects.reduce([]) { (result, object) -> [People] in
    var r = result
    if nil == r.first(where: { $0.id! == object.id!}){
    r.append(object)
    }
    return r
    }

    print("-------------------------------------------")

    pureobjects.forEach {
    print($0.id!, "----", $0.name!)
    }