目录
Vue判断数组内是否存在某一项
两种方法:
findIndex()和 indexOf()方法
findIndex()顾名思义,查找符合条件的值并返回其索引(返回值为-1表示不存在满足条件的值),通过判断返回值对其进行下一步操作
indexOf()从头开始寻找是否存在符合条件的字符串,返回值为-1表示不存在
//方法一:通用 xx(Arr,date){ // 返回值等于-1 说明数组Arr中不存在id为date的对象 if( Arr.findIndex(item => item.id=== date )!==-1){ ... } } //方法二:当数组里的对象为字符串时用这个方法更简单 xx(Arr,date){ // 返回值等于-1 说明数组Arr中不存在id为date的对象 if( Arr.indexOf(date)!==-1 ){ ... } }
实例
xxx(){ const that=this; that.$axios.get('/get_collection_user') //axios请求 .then((res)=>{ that.cards = res.data //获取cards数组 //判断数组内是否存在数据that.storeId,如果不存在返回值为-1 if(that.cards.findIndex(item => item.mindId=== that.storeId)!==-1){ that.isActive = true } })
VUE-判断数组中是否含有某个值
①findIndex()
['zahngsan','lisi','LIXIUJUAN700','WANGYIBO500'].findIndex((v)=>(v==="LIXIUJUAN700")) // 得到的值!==-1,则存在 // 返回2,该值在数组中的位置
②find()
let arr =[{name:'ZS'},{name:'WW'},{name:'LS'},{name:'GT'},{name:'JP'},{name:'JP'}]; let obj =arr.find((item)=>{item.name==='JP'}); if(obj){ // 存在,返回obj={name:'JP'} }else{ // 不存在 }
③indexOf()
['nts','stg','APP'].indexOf('nts') // === -1 则不存在 // !== -1 则存在,返回的是该值在数组的索引 0
④filter()
['nts','stg','esg'].filter((m)=>(m!=='stg'));// ['nts','esg'] // 可以判断数组过滤后的长度与过滤后的长度比较
⑤includes()
['stg','nts','cds','app'].includes('app'); // true 存在 // false 不存在