js map 实现模糊搜索
时间: 2024-08-15 14:01:02 浏览: 94
JavaScript中的`map()`函数主要用于数组操作,通常用于遍历数组并对每个元素应用一个特定的映射规则,生成新的数组。如果想要实现模糊搜索,特别是针对字符串内容,你可能会想结合数组的`filter()`函数一起使用。
假设你有一个用户数据数组,你想根据用户的名称做模糊搜索,可以这样做:
```javascript
let users = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 },
{ name: 'Charlie', age: 35 }
];
function fuzzySearch(query) {
return users.map(user => ({
...user,
relevance: user.name.toLowerCase().includes(query.toLowerCase())
})).filter(user => user.relevance);
}
// 示例搜索 "al"
let searchResults = fuzzySearch('al');
console.log(searchResults); // [{ name: 'Alice', age: 25, relevance: true }]
```
在这个例子中,`fuzzySearch`函数首先使用`map()`将每个用户对象转换成一个新的对象,增加了一个名为`relevance`的属性,该属性表示原始名字是否包含查询关键字。然后,通过`filter()`筛选出那些名字包含查询词的对象。
阅读全文