搜索选择框 过滤数据

// 搜索过滤 val:传入值, list:列表数组, key:对比字段, filterIndex:过滤开始的索引
export function dataFilter(val, list, key, filterIndex) {
filterIndex = filterIndex >= 0 ? filterIndex : 0
if (val != '') {
const or = /[A-Za-z]+$/
const arr = list
let searchKey = val
if (or.test(searchKey)) {
searchKey = searchKey.toUpperCase()
}
searchKey = searchKey.toString()
const len = searchKey.length
let isTopFilter = false
const allFilterList = []
const newList = arr.filter((item) => {
let items = item[key]
if (or.test(items)) {
items = items.toUpperCase()
}
for (let index = 0; index < items.length; index++) { // 全局过滤
let newItems = items
newItems = newItems.substring(index, index + len)
if (newItems == searchKey) {
allFilterList.push(item)
}
}
if (filterIndex >= 0) { // 开头过滤
items = items.toString().substring(filterIndex, filterIndex + len)
if (items == searchKey) {
isTopFilter = true
return item
}
}
})
if (!isTopFilter) {
return allFilterList
}
return newList
} else {
// val不存在还原数组
return list
}
}
posted @   谎渊  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示