You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript Predictive Search优化:实现输入字符串任意位置匹配

解决任意位置匹配的预测搜索问题

原代码仅支持前缀匹配,只能从预测数据的开头匹配输入内容,无法满足你需要的“任意位置子串匹配”需求,以下是修改方案:

修改后的代码

function predictSearch(input) {
    const results = [];
    const lowerInput = input.toLowerCase(); // 提前转小写,减少重复计算
    for (let i = 0; i < predictiondata.length; i++) {
        const itemLower = predictiondata[i].toLowerCase();
        // 检查输入是否是当前预测项的任意子串
        if (itemLower.includes(lowerInput)) {
            if (results.length < 5) {
                results.push(itemLower);
            }
        }
    }
    return results;
}

核心改动说明

  • 把原有的前缀匹配逻辑(截取预测项开头和输入做全等对比)替换为includes()方法,该方法会直接判断输入字符串是否是预测项的任意位置子串,完全覆盖你需要的匹配场景
  • 提前将输入转成小写并缓存,避免循环中重复执行toLowerCase(),小幅提升性能
  • 保留了原逻辑中最多返回5条结果的限制

额外优化方向

如果你的predictiondata数据量较大,可进一步优化:

  • 提前将所有预测数据转成小写并缓存,避免每次搜索重复转换
  • 引入分词处理:把汽车年款/品牌/型号和配件名称拆分存储,搜索时可分别匹配,提升结果精准度
  • 若需要支持拼写容错,可引入模糊匹配逻辑(如编辑距离算法)

内容的提问来源于stack exchange,提问作者donovan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 14:24:54