UKey's Labo

swift – 配列(Array)の重複を削除する

動作環境

環境 バージョン
Xcode 9.4.1
iOS 11.4
swift 4.1.2

NSOrderedSetを使用

NSOrderedSetを使用するとArray内で重複している要素を削除することができます。
NSOrderedSetには重複を許さないという仕様があるためらしいです。

余談ですが、「重複」は「ちょうふく」と読むかと思うのですが、
「じゅうふく」と読んでいらっしゃる方を多々お見受けして内心「ププッ」と笑ってました。
しかしながら、調べてみると元来は「ちょうふく」と読むらしいのですが、
「じゅうふく」と読んで使われることが多くなっていることから、
辞典には「ちょうふく」「じゅうふく」どちらも記載があるそうです。
時代とともに言葉は変わりますから。
ということで最近は気にならなくなりました。

フッ。ほんとどうでもいい話です。

使い方

NSOrderedSet(array: )で重複を削除したいArrayを一旦NSOrderedSetでインスタンス化し、
再度元のArrayに戻します。

// Int型の配列
var intArr: [Int] = [0, 1, 2, 3, 4, 1, 2, 3, ]
// Int型の配列をNSOrderedSetに変換
let orderedSet: NSOrderedSet = NSOrderedSet(array: intArr)
// 再度Arrayに戻す
intArr = orderedSet.array as! [Int]

for int in intArr {
    // 出力してみる
    print(int)
}
// 0
// 1
// 2
// 3
// 4

[amazon_link asins=’B0777FQSVY’ template=’custom’ store=’takayuki57101-22′ marketplace=’JP’ link_id=’41f2753e-aec1-11e8-ae3b-1fcd404aecc6′]