尝试将数组数组转换为数组。
例如:
我想将[["1"],["2"],["3"]]
转换为[1,2,3]
我尝试了许多解决方案,但是这些解决方案似乎都无法在最新的工作Swift(Swift 4)上运行。
var lat = [] as [[String]]
for i in 0..<holder.count {
if i % 4 == 0 {
lat.append(holder[i] as! [String])
}
if ((i+1) % 4) == 0 {
type.append(holder[i])
}
if (i % 4) == 1 {
long.append(holder[i])
}
if (i % 4) == 2 {
speed.append(holder[i])
}
}
let reducedLat = lat.joined().compactMap(Int.init)
print(lat)
print(reducedLat)
这段代码什么也没有产生,我想知道为什么xcode无法识别lat中的值?将其转换为我想要的数据类型。 谢谢!
当我尝试直接转换为Int时,也会引发错误...
var lat = [] as [[Int]]
//let reducedLat = lat.joined().compactMap(Int.init)
//print(reducedLat)
for i in 0..<holder.count {
if i % 4 == 0 {
lat.append(holder[i] as! [Int])
}
if ((i+1) % 4) == 0 {
type.append(holder[i])
}
if (i % 4) == 1 {
long.append(holder[i])
}
if (i % 4) == 2 {
speed.append(holder[i])
}
}
print(lat)
日志上的错误-'无法将类型'Swift.String'(0x1051c49f8)的值强制转换为'Swift.Int''
答案 0 :(得分:3)
flatMap
铺平数组 map
到String
的{{1}}数组
Int
或
let array = [["1"],["2"],["3"]]
let flattenedArray = array.flatMap{$0}.map(Int.init)
铺平数组 joined
到compactMap
的{{1}}数组
String