Cập nhật: Xcode 9 • Swift 4
Bạn có thể tạo một mảng kí tự và flatMap họ int như sau:
let number = "123456"
let array = number.flatMap{Int(String($0))} // [1, 2, 3, 4, 5, 6]
Bạn cũng có thể mở rộng giao thức Integer:
extension Int {
var array: [Int] {
return String(self).flatMap{ Int(String($0)) }
}
}
Xco de 8.2.1 • Swift 3.0.2
Bạn có thể tạo một mảng kí tự và flatMap họ int như sau:
let number = "123456"
let array = number.characters.flatMap{Int(String($0))} // [1, 2, 3, 4, 5, 6]
Bạn cũng có thể mở rộng giao thức Integer:
extension Int {
var array: [Int] {
return String(self).characters.flatMap{ Int(String($0)) }
}
}
let myInt = 12345
let myIntArray = myInt.array // [1, 2, 3, 4, 5]
Chỉnh sửa: Theo đề xuất của doisk, bạn có thể sử dụng flatMap cũng để lồng kết quả.
let intArray = [456, 827]
let nestedInts = intArray.flatMap{$0.array}
print(nestedInts) // [4, 5, 6, 8, 2, 7]
Thanks a lot Leonardo! Ngoài ra những gì nếu tôi muốn chia số mà họ đang ở trong một mảng? ví dụ var array = [456, 827] – Do2
là nó sẽ trả về một mảng với 6 Ints hoặc 2 mảng của 3 Ints? –
nó sẽ trả về 1 mảng 6 Ints – Do2