// 搜索过滤 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
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!