そこらへんの大学生のブログ

iOS開発やったり、海外に住んだり、大学生やったりしてます。

swift4 配列内の要素の重複を無くしたい時


配列内の要素から重複を無くす方法

配列の中に同じ値の要素が複数ある時にその配列からカブりを無くしたい時がたまにあるかと思います。
そんな時は

var orderedSet = NSOrderedSet(array: myArray)
var uniqueMyArray =  orderedSet.array as! [String]

のようにすると配列myArrayから重複が無くなります。
どうやらNSOrderedSetは重複を許さないようになっているらしく、
それを利用して重複を無くしてから、元の型の配列にキャストしています。

さらに

extension Array {
    func unique() -> [String] {
        let orderedSet = NSOrderedSet(array: self)
        return orderedSet.array as! [String]
    }
}

という風にArrayを拡張してあげると

myArray.unique()

とするだけでその配列から重複を無くせるので、より便利になります。