今天完善项目时,新增了一个搜索功能,具体思路就不说了,主要是是纪录一下js实现模糊查询的方法
1、正则表达式
// 查询商品
onsSerchIng: function() {
// 查询的数组
const foodlist = [...this.data.foodList];
// 查询的关键字
const value = this.data.value;
// new RegExp:正则表达式的缩写
const newv = new RegExp(value)
// 查找的内容放入的数组
const resFoodList = [];
// 遍历符合条件的数据
for (let i = 0; i < foodlist.length; i++) {
// match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
if (foodlist[i].product.match(newv)) {
resFoodList.push(foodlist[i])
}
}
this.setData({
resultList: resFoodList
})
},
2、字符串方法:indexOf
onsSerchIng: function() {
// 查询的数组
const foodlist = [...this.data.foodList];
// 查询的关键字
const value = this.data.value;
// 查找的内容放入的数组
const resFoodList = [];
// 遍历符合条件的数据
for (let i = 0; i < foodlist.length; i++) {
// 如果字符串中不包含目标字符会返回-1
if (foodlist[i].product.indexOf(value)>=0) {
resFoodList.push(foodlist[i])
}
}
this.setData({
resultList: resFoodList
})
},
3、split()方法
onsSerchIng: function() {
// 查询的数组
const foodlist = [...this.data.foodList];
// 查询的关键字
const value = this.data.value;
// 查找的内容放入的数组
const resFoodList = [];
// 遍历符合条件的数据
for (let i = 0; i < foodlist.length; i++) {
//
if (foodlist[i].product.split(value).length>1) {
resFoodList.push(foodlist[i])
}
}
this.setData({
resultList: resFoodList
})
},
网友评论