当前位置:首页 > JavaScript

js搜索实现

2026-04-05 15:55:17JavaScript

JavaScript 搜索实现方法

基本字符串搜索

使用 includes() 方法检查字符串是否包含子串:

const str = "Hello World";
const result = str.includes("World"); // true

使用 indexOf() 获取子串位置:

const position = str.indexOf("World"); // 6

正则表达式搜索

使用 test() 方法进行模式匹配:

const regex = /world/i;
const isMatch = regex.test("Hello World"); // true

使用 match() 提取匹配结果:

js搜索实现

const matches = "2023-04-01".match(/\d+/g); // ["2023", "04", "01"]

数组搜索

使用 find() 查找符合条件的第一项:

const users = [{id:1, name:"Alice"}, {id:2, name:"Bob"}];
const user = users.find(u => u.id === 2); // {id:2, name:"Bob"}

使用 filter() 筛选所有匹配项:

const filteredUsers = users.filter(u => u.name.includes("A")); // [{id:1, name:"Alice"}]

模糊搜索实现

结合字符串处理和正则表达式实现模糊匹配:

js搜索实现

function fuzzySearch(text, query) {
  const pattern = query.split("").join(".*");
  return new RegExp(pattern, "i").test(text);
}
fuzzySearch("Electronics", "eltr"); // true

搜索算法优化

对于大型数据集,考虑预先建立索引:

const searchIndex = {};
data.forEach(item => {
  const keywords = item.name.toLowerCase().split(" ");
  keywords.forEach(key => {
    searchIndex[key] = searchIndex[key] || [];
    searchIndex[key].push(item);
  });
});

前端实时搜索

监听输入事件实现即时搜索:

const searchInput = document.getElementById("search");
searchInput.addEventListener("input", (e) => {
  const results = data.filter(item => 
    item.name.toLowerCase().includes(e.target.value.toLowerCase())
  );
  renderResults(results);
});

高级搜索库

考虑使用专业搜索库如Lunr.js:

const idx = lunr(function() {
  this.ref("id");
  this.field("title");
  this.field("body");

  documents.forEach(doc => this.add(doc));
});

const results = idx.search("query");

标签: js
分享给朋友:

相关文章

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <…

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…

js节流实现

js节流实现

节流的概念 节流(Throttle)是一种限制函数执行频率的技术,确保函数在一定时间间隔内只执行一次。常用于滚动事件、窗口调整等高频触发的场景。 基础实现方法 使用时间戳判断是否执行函数: fun…

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <htm…

js实现复选框

js实现复选框

实现复选框的基本方法 使用HTML的<input type="checkbox">元素创建复选框,并通过JavaScript监听其状态变化。 <input type="checkb…

js实现文件夹

js实现文件夹

使用JavaScript创建文件夹 在浏览器端的JavaScript中无法直接操作文件系统创建文件夹,这是出于安全考虑。但在Node.js环境中可以通过文件系统模块(fs)实现。 Node.js中使…