【发布时间】:2017-01-13 23:32:06
【问题描述】:
我正在尝试过滤和排列人员并按特定顺序获取结果。这意味着当用户输入 someString 时,我想首先展示他们的名字与那个 someString 匹配的人,然后从那个 someString 开始,然后是任何包含那个字符串的名字。 有什么办法可以使用 Array "Filter" 来完成,或者我必须在此之后执行另一个手动排序?
这是我的过滤代码:
self.filteredNames = self.names.filter({$0.name.lowercaseString.hasPrefix(text!) | $0.name.lowercaseString.containsString(text!) | $0.allEmails.lowercaseString.containsString(text!.lowercaseString) | $0.allNumbers.lowercaseString.containsString(text!.lowercaseString)})
【问题讨论】:
-
您的过滤代码与您对问题的描述不符。看起来您正在过滤不同的字段,而不是对同一字段的不太具体的要求。
-
其实,两者都是 .结果应按顺序排列:匹配字符串的名称、以该字符串开头的名称、包含该字符串的名称、包含该字符串的电子邮件、包含该字符串的电话号码。