環境
- Swift version 4.1.2
- Xcode 9.4.1
背景
※この記事は Sequence.flatMap
を使って多重配列をFlattenしていた人向けの記事です。
Swift4.1になってから Sequence.flatMap
がDeprecatedになり、かわりに map
と compactMap
を使うようになりました。これらの使い方や導入経緯はこちらが詳しいです。
さて、 .flatMap { $0 }
を使ってFlattenをしていた人からすると、多重配列をFlattenする方法がなくなってしまいました。
解決策
joined()
を使えば良いです。
let multiDimensionalArray: [[Int]] = [[1, 2, 3], [4, 5], [6, 7, 8, 9]] let joinedArray = Array(multiDimensionalArray.joined()) print(joinedArray) // => [1, 2, 3, 4, 5, 6, 7, 8, 9]
よかったですね。
備考
Swift3で flatten()
が joined()
になっていたらしい。知らんかった。