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

回答編集履歴

2

first

2018/07/26 08:19

投稿

fuzzball
fuzzball

スコア16733

answer CHANGED
@@ -1,8 +1,20 @@
1
- flatMapで一次元配列にしてcontains。
1
+ # flatMap
2
2
 
3
+ flatMapで一次元配列にしてからcontains。
4
+
3
5
  ```swift
4
6
  var arrayOfArray = [["AAA", "BBB", "CCC"], ["DDD", "EEE", "FFF"]]
5
7
  print(arrayOfArray.flatMap {$0}) //=> ["AAA", "BBB", "CCC", "DDD", "EEE", "FFF"]
6
8
  print(arrayOfArray.flatMap {$0}.contains("EEE")) //=> true
7
9
  print(arrayOfArray.flatMap {$0}.contains("HHH")) //=> false
10
+ ```
11
+
12
+ # first
13
+
14
+ 普通にループ回してる感じ。
15
+ nilなら含まれていない。
16
+
17
+ ```swift
18
+ print(arrayOfArray.first {$0.contains("EEE")}) //=> Optional(["DDD", "EEE", "FFF"])
19
+ print(arrayOfArray.first {$0.contains("HHH")}) //=> nil
8
20
  ```

1

flatMap

2018/07/26 08:19

投稿

fuzzball
fuzzball

スコア16733

answer CHANGED
@@ -1,1 +1,8 @@
1
+ flatMapで一次元配列にしてcontains。
2
+
1
- `Set`使って下さい。
3
+ ```swift
4
+ var arrayOfArray = [["AAA", "BBB", "CCC"], ["DDD", "EEE", "FFF"]]
5
+ print(arrayOfArray.flatMap {$0}) //=> ["AAA", "BBB", "CCC", "DDD", "EEE", "FFF"]
6
+ print(arrayOfArray.flatMap {$0}.contains("EEE")) //=> true
7
+ print(arrayOfArray.flatMap {$0}.contains("HHH")) //=> false
8
+ ```