js实现模糊查询

简介: js实现模糊查询的几种方法
学习过程中将笔记跟大家分享,希望对大家也有所帮助,共同成长进步💪~\
如果大家喜欢,可以点赞或留言💕 ~~,谢谢大家⭐️⭐️⭐️~
对于模糊查询,一般都是传关键字给后端,由后端来做。但是有时候一些轻量级的列表前端来做可以减少ajax请求,在一定程度上提高用户体验。也能节省不少时间

1. indexof 方法

语法:stringObject.indexOf(searchvalue,fromindex)
参数:searchvalue 必需。规定需检索的字符串值。
fromindex 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是0到stringObject.length - 1。
如省略该参数,则将从字符串的首字符开始检索。

说明:
该方法将从头到尾地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的
fromindex 处或字符串的开头(没有指定 fromindex 时)。如果找到一个 searchvalue,则返回
searchvalue 的第一次出现的位置。stringObject 中的字符位置是从 0 开始的。如果没有找到,将返回 -1。

  /**
   * 使用indexof方法实现模糊查询
   * @param  {Array}  list     进行查询的数组
   * @param  {String} keyWord  查询的关键词
   * @return {Array}           查询的结果
   */
  function fuzzyQuery(list, keyWord) {
    var arr = [];
    for (var i = 0; i < list.length; i++) {
      if (list[i].indexOf(keyWord) >= 0) {
        arr.push(list[i]);
      }
    }
    return arr;
  }

2. split 方法

  /**
   * 使用spilt方法实现模糊查询
   * @param  {Array}  list     进行查询的数组
   * @param  {String} keyWord  查询的关键词
   * @return {Array}           查询的结果
   */
  function fuzzyQuery(list, keyWord) {
    var arr = [];
    for (var i = 0; i < list.length; i++) {
      if (list[i].split(keyWord).length > 1) {
        arr.push(list[i]);
      }
    }
    return arr;
  }

3. match 方法

  /**
   * 使用match方法实现模糊查询
   * @param  {Array}  list     进行查询的数组
   * @param  {String} keyWord  查询的关键词
   * @return {Array}           查询的结果
   */
  function fuzzyQuery(list, keyWord) {
    var arr = [];
    for (var i = 0; i < list.length; i++) {
      if (list[i].match(keyWord) != null) {
        arr.push(list[i]);
      }
    }
    return arr;
  }

4. test方法(正则匹配)

 /**
   * 使用test方法实现模糊查询
   * @param  {Array}  list     原数组
   * @param  {String} keyWord  查询的关键词
   * @return {Array}           查询的结果
   */
  function fuzzyQuery(list, keyWord) {
    var reg =  new RegExp(keyWord);
    var arr = [];
    for (var i = 0; i < list.length; i++) {
      if (reg.test(list[i])) {
        arr.push(list[i]);
      }
    }
    return arr;
  }

具体indexof,split,match,test方法的用法可以去参考官网查看学习,这里不做详解了https://www.w3school.com.cn/jsref/jsref_indexOf.asp

总结:以上四种方法,除了match方法性能最差,其他三个方法在性能上差不多。不过test使用正则较灵活,推荐使用。
目录
相关文章
|
6天前
|
JSON JavaScript 前端开发
如何用JS实现模糊查询功能
如何用JS实现模糊查询功能
36 0
|
6天前
|
JavaScript 搜索推荐 索引
JS中的模糊查询功能
JS中的模糊查询功能
|
10月前
|
JavaScript
js多条件筛选(可单条件搜索还可以模糊查询)
js多条件筛选(可单条件搜索还可以模糊查询)
188 0
|
9月前
|
存储 自然语言处理 JavaScript
js根据数据关键字实现模糊查询功能
js根据数据关键字实现模糊查询功能
391 0
|
10月前
|
存储 自然语言处理 JavaScript
js根据数据关键字实现模糊查询功能
js根据数据关键字实现模糊查询功能
262 0
|
10月前
|
JavaScript 前端开发
js实现模糊查询
今天为大家分享的是使用js实现模糊查询: 首先写出html
|
11月前
|
JavaScript
用js实现在数组中模糊查询某个字符串
用js实现在数组中模糊查询某个字符串
220 0
|
JavaScript 前端开发
利用JavaScript实现二级联动
利用JavaScript实现二级联动 要实现JavaScript二级联动效果,首先要确定需要哪些技术: 二维数组 for in循环 new Option(text,value,true,true) add(option,null) onchange() 表单事件 HTML代码: &lt;!-- &lt;input type=&quot;text&quot; id=&quot;text&quot;&gt; --&gt; 请选择省份: &lt;select name=&quot;&quot; id=&quot;provinces&quot;&gt; &lt;!-- &lt;option value=&quot;江苏省&quot;&gt;江苏省&lt;/option&gt;
|
JavaScript 前端开发
JavaScript函数柯里化的实现原理,进来教你完成一个自己的自动实现柯里化方法
JavaScript函数柯里化的实现原理,进来教你完成一个自己的自动实现柯里化方法
168 0
|
移动开发 JavaScript weex
weex-自定义module,实现weex在iOS的本地化,js之间互相跳转,交互,传值(iOS接入weex的最佳方式)
weex-自定义module,实现weex在iOS的本地化,js之间互相跳转,交互,传值(iOS接入weex的最佳方式)
221 0