swift - 如何快速过滤类属性的属性
问题描述
I have problem to filter an array of station aroundStreet I know about map but I need when choosen string is equal to around street return All info about MetroLine Class that contain line,intersection ,....
class Name{
var farsiName:String
var englishName:String
init(farsi:String,english:String) {
self.farsiName = farsi
self.englishName = english
}
}
class Station{
var name:Name
var isintersection:Bool
var aroundStreet:[String]
init(name:Name,aroundStreet:[String],isintersection:Bool) {
self.name = name
self.aroundStreet = aroundStreet
self.isintersection = isintersection
}
}
class MetroLine{
var name:(origin:Name,deste:Name)
var lineNumber:Int
var station:[Station]
var intersection:[Name]
var lineColor:UIColor
var numberStations:Int{
return station.count
}
init(name:(origin:Name,deste:Name),lineNumber:Int,station:[Station],intersection:[Name],lineColor:UIColor){
self.lineNumber = lineNumber
self.station = station
self.intersection = intersection
self.lineColor = lineColor
self.name = name
}
}
我试试这段代码
var MetroBankArray = [MetroLine]()
func findUserLocation(origin:String)->Void{
let new = MetroBankArray.map({$0.station.map({$0.aroundStreet.filter({$0 == origin})})})
}
输出
[[["nabard"]]]
解决方案
您可以实现搜索功能以返回电台列表。请注意,为了更好的可读性,我更改了站点中的站点。
class MetroLine {
var name:(origin:Name,deste:Name)
var lineNumber:Int
var stations:[Station]
var intersection:[Name]
var lineColor:UIColor
var numberStations:Int{
return stations.count
}
init(name:(origin:Name,deste:Name),lineNumber:Int,stations:[Station],intersection:[Name],lineColor:UIColor){
self.lineNumber = lineNumber
self.stations = stations
self.intersection = intersection
self.lineColor = lineColor
self.name = name
}
func searchStationAround(street: String) -> [Station] { // All stations around
var listOfStations = [Station]()
for station in stations where station.aroundStreet.contains(street) {
listOfStations.append(station)
}
return listOfStations
}
}
您可以通过首先将所有街道名称转换为小写来使其更加健壮……</p>
推荐阅读
- math - Ball arithmetic vs interval arithmetic
- python - Pytest mocking an eval imported function
- html - 如何将图标放在textarea中?
- python - Python。嵌套字典列表:奇怪的行为
- azure - Azure New-AzureStorageBlobSasToken 返回不正确的 fulluri 字符串
- scala - Spark - 读取许多小型镶木地板文件可事先获取每个文件的状态
- python - 验证嵌套的 Flask WTForm 和删除/删除动态命名的表单(表单域)
- compiler-errors - Minizinc“完全正确”的问题。编译时出错
- php - php date() 函数没有给我正确的年份
- ios - 使用 Lottie 自定义 UIRefreshControl