JS sortメソッドは、配列オブジェクトの属性値に基づいて並べ替えられます。


sort方法はパラメータとして関数を受信します。ここにはオブジェクト属性名を受信するための関数が組み込まれています。他の部分コードは通常のsortメソッドと同じです。

var arr = [
  {name:'zopp',age:0},
  {name:'gpp',age:18},
  {name:'yjj',age:8}
];

function compare(property){
  return function(a,b){
    var value1 = a[property];
    var value2 = b[property];
    return value1 - value2;
  }
}
console.log(arr.sort(compare('age')))

どのようにパラメータによって昇順に並べますか?それとも降順に並べますか?

/**                       
   *     :newArray.sort(sortBy('number',false)) //    number      ;         ,        
   * @param attr        number  
   * @param rev true      ,false    
   * */
  sortBy: function(attr,rev){
    //                
    if(rev == undefined){
      rev = 1;
    }else{
      rev = (rev) ? 1 : -1;
    }
    
    return function(a,b){
      a = a[attr];
      b = b[attr];
      if(a < b){
        return rev * -1;
      }
      if(a > b){
        return rev * 1;
      }
      return 0;
    }
  }
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。