在如今 前端开发在整个开发过程中,也要处理很多数据逻辑了
那么模糊搜索 用filter数组过滤 与 indexOf模糊搜索 显然是很不错的写法
但indexOf 有个很大的问题 那就是 他是区分大小写的
例如 L 和 l 在indexOf下是不能匹配的
那么这个时候我们就需要将他们转换过来
toUpperCase 将字符串变量转成大写
toLowerCase 将字符串变量转成小写
显然,这两个方法都能解决问题
参考代码如下
let data = [
{
id: 1,
name: 'Gr你好'
},
{
id: 2,
name: 'gG 这是一局愉快的游戏'
},
{
id: 3,
name: '数据编制的时代'
}
]
let text = 'g'
let distinguish = data.filter((e) => e.name.indexOf(text) != -1)
let nodistinguish = data.filter((e) => e.name.toLowerCase().indexOf(text.toLowerCase()) != -1)
console.log(distinguish); //[{id: 2,name: 'gG 这是一局愉快的游戏'}]
console.log(nodistinguish); /* [{id: 1,name: 'Gr你好'},{id: 2,name: 'gG 这是一局愉快的游戏'}] */
其实原理也很简单 就是将条件和内容都转成大写 或者 都转成小写 在进行过滤