带有内联正则表达式的Array.filter

时间:2019-09-10 11:24:16

标签: swift swift5

我正在编写一个函数,该函数给出了一个包含名为a.shape的属性的对象数组,请删除所有具有 bad url的对象。

这就是我所拥有的:

url

但是xcode在func cleanArray(data:[String: Any])->Void { let uris = data.filter{($0["url"] as! String).range(of: #"^(https?|file|ftp)"#, options: .regularExpression) != nil }; } 中显示错误:

  

元组类型'(键:字符串,值:任何)'的值没有成员'下标'

1 个答案:

答案 0 :(得分:1)

[String: Any]是一本字典,您需要[[String: Any]]

func cleanArray(data:[[String: Any]]) -> Void { 
    let uris = data.filter{ ($0["url"] as! String).range(of: #"^(https?|file|ftp)"#, options: .regularExpression) != nil };
}

如果将其设置为模型数组,则可能更面向对象