gpt4 book ai didi

arrays - 对数组的元素进行排序 (Swift)

转载 作者:行者123 更新时间:2023-11-30 12:00:37 25 4
gpt4 key购买 nike

我有这段代码,用于下载附近的地点(我正在使用 Google 地点 API)。

if let response = response {
self.response = response
if response.status == "OK" {
if let placesDownloaded = response.places {
var number = numberPlaces / (categories?.count)!
number = number == 0 ? 1 : number

let firstPlace = placesDownloaded.prefix(1)

var isRestaurant = false
var isGym = false
var isSpa = false
var isBar = false
var isNight_Club = false
var isMuseum = false
var isMovie_Theater = false

for place in firstPlace {
for type in place.types! {
if (type.lowercased() == "restaurant") {
isRestaurant = true
}
else if (type.lowercased() == "gym") {
isGym = true
}
else if (type.lowercased() == "spa") {
isSpa = true
}
else if (type.lowercased() == "bar") {
isBar = true
}
else if (type.lowercased() == "night_club") {
isNight_Club = true
}
else if (type.lowercased() == "museum") {
isMuseum = true
}
else if (type.lowercased() == "movie_theater") {
isMovie_Theater = true
}
}
}
if(isRestaurant) && numberPlaces <= 4 {
number = 1
}
else if(isGym) && numberPlaces > 1 {
number = 1
}
else if(isSpa) && numberPlaces <= 6 {
number = 1
}
else if(isNight_Club) && numberPlaces <= 3 {
number = 1
}
else if(isMuseum) && numberPlaces <= 2 {
number = 1
}
else if(isMovie_Theater) && numberPlaces <= 7 {
number = 1
}
else if(isBar) && numberPlaces <= 2 {
number = 1
}

places.append(contentsOf: placesDownloaded.prefix(number))
}
}
}

我想做的是创建一个 if 语句来对数组 categories 的元素进行排序。例如,像这样:

else if(isBar) && (isMuseum)  {
// museum becomes the element [0] of `categories` and bar becomes the element [1]
}

但是我真的不知道该怎么做。有人可以帮我举个例子吗?

最佳答案

使用Array.sorted()获取有序数组:

let sortedCategories = categories.sorted()

如果您不希望它仅按字母顺序排序而是通过您自己定义的排序函数排序,您也可以将函数传递给 sorted() 。例如,我得到一个按每个字符串的长度从最短到最长排序的数组:

let sortedCategoriesByLength = categories.sorted { (first, second) -> Bool in
return first.count < second.count
}

关于arrays - 对数组的元素进行排序 (Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47288683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com