extension Array where Element: Hashable {
    func difference(from other: [Element]) -> [Element] {
        let thisSet = Set(self)
        let otherSet = Set(other)
        return Array(thisSet.symmetricDifference(otherSet))
    }
}

let names1 = ["John", "Paul", "Ringo"]
let names2 = ["Ringo", "Paul", "George"]
print( names1.difference(from: names2)) //-> ["John", "George"]
print( names1.difference(from: names2.count)) //-> 2

+ Recent posts