teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

追記

2018/08/07 08:23

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -31,4 +31,34 @@
31
31
  // もう一度重複要素を除去する => ["B", "D"]
32
32
 
33
33
 
34
+ ```
35
+
36
+ ### 解決方法&備忘録
37
+
38
+
39
+ その1
40
+ ```swift
41
+ let array = ["A", "B", "B", "B", "C", "D", "D"]
42
+
43
+ // 重複している要素の取得
44
+ var set = Set<String>()
45
+ let duplicatedEArray = NSOrderedSet(array: array.filter { !set.insert($0).inserted }).array as! [String]
46
+ // => ["B", "D"]
47
+
48
+ // ユニークな要素の取得
49
+ let noDuplicatedArray = NSOrderedSet(array: array).array as! [String]
50
+ let UniqueEArray = noDuplicatedArray.filter{ v in return !duplicatedEArray.contains(v) }
51
+ // => ["A", "C"]
52
+ ```
53
+ その2
54
+ ```swift
55
+ let array = ["A", "B", "B", "B", "C", "D", "D"]
56
+
57
+ // 重複している要素の取得
58
+ let duplicatedEArray = Array(Dictionary(grouping: array) {$0}.filter {$0.value.count > 1}.keys)
59
+ // => ["B", "D"]
60
+
61
+ // ユニークな要素の取得
62
+ let UniqueEArray = Array(Dictionary(grouping: array) {$0}.filter {$0.value.count == 1}.keys)
63
+ // => ["A", "C"]
34
64
  ```