<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>列表过滤和排序</title>
</head>
<body>
<div id="test">
<input type="text" v-model="searchName">
<ul>
<li v-for="(item,index) in filterPer" :key="index">
{{index}}---{{item.name}}---{{item.age}}
</li>
</ul>
<button @click="sortPer(0)">原本排序</button>
<button @click="sortPer(1)">年龄升序</button>
<button @click="sortPer(-1)">年龄降序</button>
</div>
<script src="../js/vue.js"></script>
<script>
const vm = new Vue({
el:'#test',
data:{
searchName:'',
orderBy:0,
person:[
{name:'Json',age:'18'},
{name:'Mike',age:'9'},
{name:'Jane',age:'26'},
{name:'Peter',age:'22'}
]
},
computed:{
filterPer(){
const {searchName,person,orderBy} = this;
let filterP = person.filter(
//es6语法,箭头函数
p => p.name.indexOf(searchName)>=0
);
//排序
if(orderBy===1){
filterP.sort(function (a,b) {
return a.age-b.age
})
}else if(orderBy===-1){
filterP.sort(function (a,b) {
return b.age-a.age
})
}
return filterP
}
},
methods:{
sortPer(num){
this.orderBy=num;
}
}
})
</script>
</body>
</html>
vue--列表的过滤和排序
最新推荐文章于 2025-03-12 10:45:30 发布