arrays - Filter Custom Array时间优化

标签 arrays swift string filter

我必须根据文章描述中的关键字(字符串)过滤文章数组。过滤 1500 多个元素的文章类型数组和每篇文章描述中的 2000 多个单词需要 2-3 秒。

我正在使用下面的代码;我也试过 predicate 但对我没用。

let searchResult = articlesList.filter {
    let article = $0

    let filterByName = article.title.lowercased().range(of: text.lowercased())
    let filterByDescription = article.body.lowercased().range(of: (text.lowercased()))
    if ((filterByName != nil) || filterByDescription != nil) {
        if !articlesList.contains(article) {
            articlesList.append(article)
        }
    }
    else {
        let index = articlesList.index(of: article)
        if index != nil {
            articlesList.remove(at: index!)
        }
    }

    return false
}

我希望过滤时间最长为 0.3 秒。

最佳答案

这可能比 bit 快很多

let searchResult = articles.filter{ $0.title.range(of: text, options: .caseInsensitive) != nil 
                                 || $0.body.range(of: text, options: .caseInsensitive) != nil }

关于arrays - Filter Custom Array时间优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54035122/

相关文章:

ios - 如何在 Swift 中从字典填充 CollectionView

Java正则表达式分割字符串

c - strtol() 错误地返回 0

java - 使用数组获取正数

swift - Tableview 加载时的事件指示器

javascript - 合并具有相同键值的 JavaScript 对象并对其进行计数

swift - 使用计时器定期更新 NSTableCellView 内的文本字段

C++ 程序取 2 个句子并找到常见的字母?

java - 输入5个数字,然后显示您输入的所有正数和负数

python - 除以大整数时,Numpy 转换为 python float,这是一个错误吗?