【问题标题】:javascript/jquery simple search engine - implement a simple search engine, data stored in an arrayjavascript/jquery 简单搜索引擎 - 实现一个简单的搜索引擎,数据存储在数组中
【发布时间】:2020-06-10 03:16:34
【问题描述】:

问题已编辑!我已将所有产品名称存储在 对象格式数组中。我也有一个输入[type=text]。我需要一个简单的代码来搜索这个数组。 SQL 命令类似于:(SELECT name FROM tbl_product WHERE name LIKE %txt%)。但是我是在前端实现的,与后端没有连接!

<input type="text" id="mytxt" />

<script>
// [{ in_ordered_id : "product name"}, ...]
var products_name = [{ 8 : "product ninety two"}, {21 : "product two"}, {35 : "product nine"} , ....];
$("#mytxt").keyup(function(){
     var txt = $("#mytxt").val();
     var results = start_search(txt); // `results` must be array of ids e.g. [35, 98]

});

function start_search(text){
     /// I don't know what to write here
}
</script>

【问题讨论】:

  • 不区分大小写的正则表达式?莱文斯坦距离?实际问题是什么?你已经研究过什么?

标签: javascript html arrays frontend search-engine


【解决方案1】:

string.includes 可能会有所帮助

products_name = ["product one", "product two"];


$("#mytxt").keyup(function() {
  var txt = $("#mytxt").val();
  var results = start_search(txt);
  console.log(results);
});

function start_search(text) {
  return products_name.filter(pr => pr.includes(text))
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input type="text" id="mytxt">

--编辑

const products_name = [{
  8: "product ninety two"
}, {
  21: "product two"
}, {
  35: "product nine"
}]


$("#mytxt").keyup(function() {
  var txt = $("#mytxt").val();
  var results = start_search(txt);
  console.log(results);
});

function start_search(text) {
  return products_name.filter(pr => Object.values(pr)[0].includes(text)).map(pr => Number(Object.keys(pr)[0]))
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input type="text" id="mytxt">

【讨论】:

  • tnx...这真的帮了我:)
  • 更新了答案。请下次提问
【解决方案2】:

使用array.indexOf函数怎么样?

products_name = ["product one", "product two"];

function start_search(text){
     if(products_name.indexOf(text) > -1){
        return true;
    }else{
        return false;
    }
};

start_search('product'); // returns false
start_search('product one'); // returns true
start_search('product two'); // returns true
start_search('product three'); // returns false

【讨论】:

  • tnx 亲爱的朋友你的手。但我猜你没有发现我的问题。祝你好运
猜你喜欢
  • 1970-01-01
  • 2014-08-03
  • 1970-01-01
  • 1970-01-01
  • 2012-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-30
相关资源
最近更新 更多