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;
  }
}


実行結果



関連記事

最新の投稿

JIRAで複数の課題の変更履歴をシートに書き出したい(ステータス変更だけ)

JIRAで複数の課題の変更履歴をシートに書き出したい ではすべての変更履歴を取得しました。 今回はfieldが「status」の場合だけシートに書き出したい。 作成時のステータス取得について 今回は下記の方法で取得しています。 作成時の配列を以下の...