質問編集履歴

1

追記

2018/08/07 08:23

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -65,3 +65,63 @@
65
65
 
66
66
 
67
67
  ```
68
+
69
+
70
+
71
+ ### 解決方法&備忘録
72
+
73
+
74
+
75
+
76
+
77
+ その1
78
+
79
+ ```swift
80
+
81
+ let array = ["A", "B", "B", "B", "C", "D", "D"]
82
+
83
+
84
+
85
+ // 重複している要素の取得
86
+
87
+ var set = Set<String>()
88
+
89
+ let duplicatedEArray = NSOrderedSet(array: array.filter { !set.insert($0).inserted }).array as! [String]
90
+
91
+ // => ["B", "D"]
92
+
93
+
94
+
95
+ // ユニークな要素の取得
96
+
97
+ let noDuplicatedArray = NSOrderedSet(array: array).array as! [String]
98
+
99
+ let UniqueEArray = noDuplicatedArray.filter{ v in return !duplicatedEArray.contains(v) }
100
+
101
+ // => ["A", "C"]
102
+
103
+ ```
104
+
105
+ その2
106
+
107
+ ```swift
108
+
109
+ let array = ["A", "B", "B", "B", "C", "D", "D"]
110
+
111
+
112
+
113
+ // 重複している要素の取得
114
+
115
+ let duplicatedEArray = Array(Dictionary(grouping: array) {$0}.filter {$0.value.count > 1}.keys)
116
+
117
+ // => ["B", "D"]
118
+
119
+
120
+
121
+ // ユニークな要素の取得
122
+
123
+ let UniqueEArray = Array(Dictionary(grouping: array) {$0}.filter {$0.value.count == 1}.keys)
124
+
125
+ // => ["A", "C"]
126
+
127
+ ```