【发布时间】:2015-03-26 12:23:56
【问题描述】:
我有一大堆 PFObject:giantRestaurantArray。我想检查每个数组对象"FoodType" 是否包含checkFoodOptionsArray 中的任何食物类型。如果找到食物类型,则将食物类型添加到foundFoodTypes 数组中。
循环效率低下,因为它一遍又一遍地检查数组(即使已经找到了食物类型)。如何提高搜索性能并跳过已添加的 FoodTypes?
var checkFoodOptionsArray = ["American", "BBQ", "Breakfast", "Buffet", "Burgers", "Cafe", "Wings", "Chinese", "Dessert", "FastFood", "Indian", "Italian", "Japanese", "Korean", "Pizza", "Sandwiches", "Seafood", "Steakhouse", "Thai", "Mexican", "Vietnamese", "Vegan", "OtherEthnic"]
for items in checkFoodOptionsArray { checkIfFoodTypeOptionAvailable(items) }
func checkIfFoodTypeOptionAvailable(optionValue: String){
let isAvailable = contains(giantRestaurantArray as [PFObject]) { (object) -> Bool in
if let type = object["FoodType"] as? String {
return type.rangeOfString(optionValue) != nil
}
else {
return false
}
}
if isAvailable == true {
foundFoodTypes.append(optionValue)
} else {
println("No, array does not contain \(optionValue)")
}
}
【问题讨论】:
标签: arrays performance sorting search swift