Array<T> → Array<K>
Map
let names = ["George", "Faker", "Xun"]
var uppercasedNames = names.map{ $0.uppercased() }
FlatMap
let input = [["1", "5"], ["2", "4"]]
let numbers = input.flatMap {Int($0)} // [1,5,2,4]
CompactMap
let input = ["1", "5", "X"]
let numbers = input.compactMap {Int($0)} // [1,5]
Array<Tuple> → Dictionary
let counts = [(9,1), (5,1), (3,1), (5,1)]
let dict = Dictionary(counts, uniquingKeysWith: +)
let numbers = Array(1...100)
let sum = numbers.reduce(0, +)
// or
let sum = numbers.reduce(0){ $0 + $1 }
let strings = ["Iron man", "Hulk"]
let ironFilter = strings.filter{ $0.contains("Iron") }
let names = "xun, json, swift"
let namesArr = names.components(separatedBy: ", ")
// namesArr = ["xun", "json", "swift"]
let namesArr = ["xun", "json", "swift"]
let choppedArr = namesArr.suffix(2)
// choppedArr = ["json", "swift"]
let arr = ["1", "2"]
let nums = arr.joined(separator: " ")
// nums = "1 2"
let first = [1, 2, 3]
let second = [4, 5, 6]
let arr = zip(first, second) // arr = [(1,4), (2,5), (3,6)]