Ios 带条件的快速过滤器
我正在创建一个过滤器来过滤一组车辆。我是根据价格、性能和可选的传动装置类型进行过滤的Ios 带条件的快速过滤器,ios,swift,Ios,Swift,我正在创建一个过滤器来过滤一组车辆。我是根据价格、性能和可选的传动装置类型进行过滤的 func filterCarSpecifications(among carSpecifications: [CarSpecification]) -> [CarSpecification] { let filteredCars = carSpecifications.filter { let performance = $0.car.ps ?? 0.0 re
func filterCarSpecifications(among carSpecifications: [CarSpecification]) -> [CarSpecification] {
let filteredCars = carSpecifications.filter {
let performance = $0.car.ps ?? 0.0
return $0.pricing.price >= IoC.filterDataService.selectedMinPrice.rounded(.down)
&& $0.pricing.price <= IoC.filterDataService.selectedMaxPrice.rounded(.up)
&& performance >= IoC.filterDataService.selectedMinPerformance
&& performance <= IoC.filterDataService.selectedMaxPerformance
}
if IoC.filterDataService.autoTransmision {
return filteredCars.filter {
let transmission: GearingType = .automatic
return $0.car.gearingType == transmission
}
}
return filteredCars
}
func filtercarspecification(在CarSpecification中:[CarSpecification])->[CarSpecification]{
let filteredCars=carSpecifications.filter{
让性能=$0.car.ps±0.0
返回$0.pricing.price>=IoC.filterDataService.selectedMinPrice.rounded(.down)
&&$0.pricing.price=IoC.filterDataService.SelectedInPerformance
&&性能像这样附加它
func filterCarSpecifications(among carSpecifications: [CarSpecification]) -> [CarSpecification] {
let filteredCars = carSpecifications.filter {
let performance = $0.car.ps ?? 0.0
return $0.pricing.price >= IoC.filterDataService.selectedMinPrice.rounded(.down)
&& $0.pricing.price <= IoC.filterDataService.selectedMaxPrice.rounded(.up)
&& performance >= IoC.filterDataService.selectedMinPerformance
&& performance <= IoC.filterDataService.selectedMaxPerformance
&& (IoC.filterDataService.autoTransmision) ? $0.car.gearingType == transmission : true
}
}
func filtercarspecification(在CarSpecification中:[CarSpecification])->[CarSpecification]{
let filteredCars=carSpecifications.filter{
让性能=$0.car.ps±0.0
返回$0.pricing.price>=IoC.filterDataService.selectedMinPrice.rounded(.down)
&&$0.pricing.price=IoC.filterDataService.SelectedInPerformance
&&性能
对于初始条件,您可以这样写:
func filterCarSpecifications(among carSpecifications: [CarSpecification]) -> [CarSpecification] {
let filteredCars = carSpecifications.filter {
let performance = $0.car.ps ?? 0.0
return $0.pricing.price >= IoC.filterDataService.selectedMinPrice.rounded(.down)
&& $0.pricing.price <= IoC.filterDataService.selectedMaxPrice.rounded(.up)
&& performance >= IoC.filterDataService.selectedMinPerformance
&& performance <= IoC.filterDataService.selectedMaxPerformance
&& (!IoC.filterDataService.autoTransmision || $0.car.gearingType == .automatic)
}
return filteredCars
}
func filtercarspecification(在CarSpecification中:[CarSpecification])->[CarSpecification]{
let filteredCars=carSpecifications.filter{
让性能=$0.car.ps±0.0
返回$0.pricing.price>=IoC.filterDataService.selectedMinPrice.rounded(.down)
&&$0.pricing.price=IoC.filterDataService.SelectedInPerformance
&&性能你能简单地解释一下逻辑是如何工作的吗?提前谢谢!条件?true:false
相当于如果条件{true}或者{false}
。希望你清楚这个解决方案。明白了!我习惯于在作业中使用它,但将它视为条件的一部分看起来并不那么简单。再次感谢。
func filterCarSpecifications(among carSpecifications: [CarSpecification]) -> [CarSpecification] {
let filteredCars = carSpecifications.filter {
let performance = $0.car.ps ?? 0.0
return $0.pricing.price >= IoC.filterDataService.selectedMinPrice.rounded(.down)
&& $0.pricing.price <= IoC.filterDataService.selectedMaxPrice.rounded(.up)
&& performance >= IoC.filterDataService.selectedMinPerformance
&& performance <= IoC.filterDataService.selectedMaxPerformance
&& (!IoC.filterDataService.autoTransmision || $0.car.gearingType == .automatic)
}
return filteredCars
}