1_数组对象的排序方法
一,使用 forEach 进行数组排序
<body>
<div id="app">
<div class="box">
<div class="todo" v-for="(item,index) in todoList">
{{item.descName}}-{{item.status}}
</div>
</div>
</div>
</body>
<script>
new Vue({
el:"#app",
data(){
return{
todoList:[
{
descName:"全职高手",
status:0
},
{
descName:"全职法师",
status:2
},
{
descName:"刺客五六七",
status:1
},
{
descName:"全职法师",
status:2
},
{
descName:"热血高校",
status:0
},
{
descName:"海贼王",
status:1
},
]
}
},
mounted() {
let flag1 = [] // flag1 flag2 flag3 是由你数组对象需要排序的字段来写的,例如我需要用status来进行排序,由于有 0 1 2 所以我申明了3个变量(flag1,flag2,flag3)
let flag2 = []
let flag3 = []
this.todoList.forEach(item => {
console.log(item,"item"); //这个 item 输出的是我 todoList 里面的数组对象数据 会把六个数据单独拿出来
switch (item.status) { //使用switch 来进行条件判断 我的排序判断条件是按status来决定的
case 0: //case 0 : 是当我的status为 0 的时候
flag1.push(item) //把 所有status是0的 添加到 flag1 这个数组中
break;
case 1: //case 1 : 是当我的status为 1 的时候
flag2.push(item) //把 所有status是1的 添加到 flag2 这个数组中
break;
case 2: //case 2 : 是当我的status为 2 的时候
flag3.push(item) //把 所有status是2的 添加到 flag3 这个数组中
break;
default:
break;
}
});
this.todoList = [...flag1,...flag2,...flag3] //然后把这三个数组全都丢个todoList
},
})
</script>
二,使用 sort 排序
1 <body> 2 <div id="app"> 3 <div class="box"> 4 <div class="todo" v-for="(item,index) in todoList"> 5 {{item.descName}}-{{item.status}} 6 </div> 7 </div> 8 </div> 9 </body> 10 <script> 11 new Vue({ 12 el:"#app", 13 data(){ 14 return{ 15 todoList:[ 16 { 17 descName:"全职高手", 18 status:0 19 }, 20 { 21 descName:"全职法师", 22 status:2 23 }, 24 { 25 descName:"刺客五六七", 26 status:1 27 }, 28 { 29 descName:"全职法师", 30 status:2 31 }, 32 { 33 descName:"热血高校", 34 status:0 35 }, 36 { 37 descName:"海贼王", 38 status:1 39 }, 40 ] 41 } 42 }, 43 mounted() { 44 this.todoList.sort((a,b)=>{ 45 return a.status - b.status a-b是升序 b-a 是降序 46 }) 47 }, 48 }) 49 </script>

浙公网安备 33010602011771号