过滤同时出现在搜索字符串中的前缀和字符对应的数组

Filter arrays corresponding to prefix and characters present in search string simultaneously

我有一个字符串数组,如 [Duabi -united arab emirates,Kastanea - greece , turin - italy],我需要同时根据搜索字符串中的前缀和字符进行过滤。 当我搜索 "D" 时,它应该显示 "Dubai - united arab emirates",如果我搜索 'united',它也应该显示 "Dubai - united arab" emirates.

这是我所做的

       self.filteredArray = self.dataArray.filter({ (country) -> Bool in

            let countryText: NSString = country as NSString

                return countryText.hasPrefix(searchString) || countryText.localizedCaseInsensitiveContains(searchString)

        })

我需要前缀过滤的高优先级,如果前缀过滤没有结果,它应该检查是否包含字符串。

您当然不需要桥接 NSStringrange(of

self.filteredArray = self.dataArray.filter{ [=10=].range(of: searchString, options: .caseInsensitive) != nil }

它搜索字符串而不考虑 prefixcontains,因为 range(of 查找 first 出现的字符串。实际上,您代码中的 prefix 搜索也是多余的