對象形式數組如何排序

先直接給上方法: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  
}
相關文章
相關標籤/搜索