v-for列表排序

Posted weixin2623670713

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了v-for列表排序相关的知识,希望对你有一定的参考价值。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="vue.min.js"></script>
</head>
<body>
<div id="app">
<input type="text" v-model="userName"/>
<ul>
<li v-for="(p,index) in filterPerson">
{{index}}----{{p.name}}---{{p.age}}
</li>
</ul>
<button @click="setOderType(1)">升序</button>
<button @click="setOderType(2)">降序</button>
<button @click="setOderType(0)">原序</button>
</div>


<script type="text/javascript">
const vm = new Vue({
el:"#app",
data:{
userName:‘‘,
orderType:0,
persons:[
{name:"Tom",age:12},
{name:"li",age:22},
{name:"jack",age:32}
]

},
computed:{
filterPerson(){
// 取出相关数据
const {userName,persons,orderType}=this
// 最终需要显示的数组
let fpersons;
// 对persons进行过滤
fpersons=persons.filter(p=>p.name.indexOf(userName)!==-1)

// 排序
if(orderType!==0){
// 返回负数p1在前 返回正数p2在前
fpersons.sort(function(p1,p2){
// 1代表升序 2代表降序
if(orderType===2){
return p2.age-p1.age
}else{
return p1.age-p2.age
}
})
}
return fpersons
}
},

methods:{
setOderType(orderType){
this.orderType=orderType
}
},
})
</script>
</body>
</html>

以上是关于v-for列表排序的主要内容,如果未能解决你的问题,请参考以下文章

Vue的v-for中列表项拖拽排序详细方法

从 Vue 中的 v-for 列表中删除重复项

Vue.js - 如何按特定属性对数组中的对象进行排序并使用“v-for”进行渲染

Vue.js列表渲染 v-for

Vue3Cli-列表渲染(v-for使用)

列表渲染,key作用与原理,列表过滤,列表排序