先直接給上方法:javascript
sortByKey:function(arr,key){ return arr.sort(function(a,b){ var x = a[key]; var y = b[key]; return ((x<y) ? -1 : ((x>y) ? 1 : 0)) }) }
這裏我是在vue項目中用到的 ,其實什麼項目中都是能夠這麼用的vue
結構:java
<ul> <li v-for="kid in kids" >{{kid.name}}-{{kid.age}}</li> </ul>
初始數據:算法
data() { return { kids:[ { name:"a", age:25 }, { name:"b", age:20 }, { name:"c", age:15 }, { name:"d", age:5 } ] } },
結果:this
要求按年齡從小到大排序:spa
methods方法:blog
methods:{ sortByKey:function(arr,key){ return arr.sort(function(a,b){ var x = a[key]; var y = b[key]; return ((x<y) ? -1 : ((x>y) ? 1 : 0)) }) } }
computed算法:排序
newKids:function(){ return this.sortByKey(this.kids,'age') }
而後 注意要改掉循環中的主循環體是newKids,即:ip
<ul>
<li v-for="kid in newKids" >{{child.name}}-{{child.age}}</li>
</ul>
結果就是:io
另:return a-b 能夠決定升降序
function sort(a,b){ return a-b }