Cepat 4.x / 5.x
Hanya untuk menambah sedikit kerumitan pada array, jika ada array yang berisi array, maka flatMapsebenarnya akan gagal.
Misalkan array tersebut
var array:[Any] = [1,2,[[3,4],[5,6,[7]]],8]
Apa flatMapatau compactMappengembaliannya adalah:
array.compactMap({$0})
[1, 2, [[3, 4], [5, 6, [7]]], 8]
Untuk mengatasi masalah ini, kita dapat menggunakan logika loop + rekursi sederhana kita
func flattenedArray(array:[Any]) -> [Int] {
var myArray = [Int]()
for element in array {
if let element = element as? Int {
myArray.append(element)
}
if let element = element as? [Any] {
let result = flattenedArray(array: element)
for i in result {
myArray.append(i)
}
}
}
return myArray
}
Jadi panggil fungsi ini dengan array yang diberikan
flattenedArray(array: array)
Hasilnya adalah:
[1, 2, 3, 4, 5, 6, 7, 8]
Fungsi ini akan membantu meratakan semua jenis larik, dengan mempertimbangkan kasus di Intsini
Output Taman Bermain:
