gpt4 book ai didi

ios - 过滤和排序 swift 数组

转载 作者:IT王子 更新时间:2023-10-29 05:22:26 25 4
gpt4 key购买 nike

我有一个要过滤的 swift 数组,这是数组

let array = [apple,workshops,shopping,sports,parties,pantry,pen] 

我想以这样的方式过滤数组,使以搜索字符串开头的项目出现在仅包含搜索字符串的项目之前

所以当我搜索示例 p 时,结果应该是这样的

let array = [parties,pantry,pen,apple,workshops,shopping,sports] 

我试过了

tagSearchResults = tagSearchResults.filter({ (interestTag:InterestTag) -> Bool in
let tmp: NSString = interestTag.tag
let range = tmp.rangeOfString(searchText, options: NSStringCompareOptions.CaseInsensitiveSearch)
return range.location != NSNotFound
})

但这给了我所有包含搜索字符串的字符串。

伙计们,我该怎么做

最佳答案

你可以写

 let result = words
.filter { $0.contains(keyword) }
.sorted { ($0.hasPrefix(keyword) ? 0 : 1) < ($1.hasPrefix(keyword) ? 0 : 1) }

例子

let words = ["apple", "workshops", "shopping", "sports", "parties", "pantry", "pen", "cat", "house"]
let keyword = "p"
let result = words
.filter { $0.contains(keyword) }
.sorted { ($0.hasPrefix(keyword) ? 0 : 1) < ($1.hasPrefix(keyword) ? 0 : 1) }

// ["pen", "pantry", "parties", "apple", "workshops", "shopping", "sports"]

关于ios - 过滤和排序 swift 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38718005/

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