LANG SELRCT

コードを書く場所についてはこちら

2018年8月20日月曜日

配列内のオブジェクトをvalueでソートしたい


このような配列があって

var obj_array = [
  { title: "かきくけこ", id: 1},
  { title: "あいうえお", id: 2},
  { title: "さしすせそ", id: 3}
];

titleで並べ替えたい



titleを昇順で並べ替えると
[{id=2.0, title=あいうえお}, {id=1.0, title=かきくけこ}, {id=3.0, title=さしすせそ}, {id=4.0, title=タチツテト}]


titleを降順で並べ替えると
[{id=4.0, title=タチツテト}, {id=3.0, title=さしすせそ}, {id=1.0, title=かきくけこ}, {id=2.0, title=あいうえお}]


ということを実現するコードの例です


コード.gs
var obj_array = [ 
  { title: "かきくけこ", id: 1},
  { title: "あいうえお", id: 2},
  { title: "さしすせそ", id: 3}
];
 
function str_sort() {
  var ascending = obj_array.sort(asc);
  Logger.log(ascending);
  var descending = obj_array.sort(desc);
  Logger.log(descending);
}

function asc(a, b){
  var targetA = a.title;
  var targetB = b.title;
  if(targetA > targetB){
    return 1;
  }else if(targetA < targetB ){
    return -1;
  }else{
   return 0;
  }
}

function desc(a, b){
  var targetA = a.title;
  var targetB = b.title;
  if(targetA > targetB){
    return -1;
  }else if(targetA < targetB ){
    return 1;
  }else{
   return 0;
  }
}


実行結果



関連記事