我使用的是swiftyjson库,我写这个是为了检索urlImage。
for (_, value) in json["assets"] {
for item in value.arrayValue {
let urlImage = item["urlImage"].stringValue
}
}
我想使用flat方法进行重构。有什么建议吗?
发布于 2018-08-04 02:09:34
简单:
let urlImageArray = json["assets"].map{$1}.map{$0["urlImage"].stringValue}
发布于 2018-08-04 00:34:57
下面是使用flatMap
和map
的方法。由于需要迭代两个数组,因此两个映射是必要的。如果闭包的名称与{ arg in
不同,则$0
是闭包中的标准参数名称。
let urlImages: [String] = jsonObject["assets"].arrayValue.flatMap{
$0.arrayValue.map{ $0["urlImage"].stringValue }
}
并过滤掉空的urlImages:
let z: [String] = jsonObject["assets"].flatMap{
$1.compactMap{
let urlImage = $1["urlImage"].stringValue
return urlImage == "" ? nil : urlImage
}
}
let z2: [String] = jsonObject["assets"].flatMap{
$1.compactMap{ $1["urlImage"].stringValue }.filter{ $0 != "" }
}
https://stackoverflow.com/questions/51675550
复制相似问题