Apps Scriptリファレンス: Apps Script Reference |障害・課題追跡: IssueTracker |Google Workspace: Status Dashboard - Summary

2019年8月11日日曜日

2次元配列を各配列の要素が少ない順に並べ替えたい


こういう配列があって
  var A = [1, 2, 3];
  var B = [4, 5];
  var C = [6, 7, 8];
  var D = [9];
  var E = [10, 11, 12, 13,14, 15];


このように配列の要素数が少ない順に並べ替えたい
 [[9.0], [4.0, 5.0], [1.0, 2.0, 3.0], [6.0, 7.0, 8.0], [10.0, 11.0, 12.0, 13.0, 14.0, 15.0]]



コード.gs
function myFunction() {
  var A = [1, 2, 3];
  var B = [4, 5];
  var C = [6, 7, 8];
  var D = [9];
  var E = [10, 11, 12, 13,14, 15];
  var arrays = [A, B, C, D, E];
  var asc = sortArrays(arrays);
  Logger.log(asc);
}

function sortArrays(arrays){
  var asc = arrays.sort(sorting);
  return asc;
}

function sorting(a, b){
  return a.length - b.length;
}
意訳
この機能がやること
配列を用意する




用意した配列を1つの配列に入れて二次元配列を作る
sortArraysに渡して結果を取得して
ログに出す


この機能がやること
渡された二次元配列内の各配列の要素数を比較して少ない順に並べ替えて
返す


この機能がやること
要素数を比較して 0未満は-1(aをbより前に), 0は0(順番はそのまま),  1以上は1(aをbより後ろへ)を返す(そして要素数が少ない順に入れ替えていく)



参考

Array.prototype.sort()

Latest post

Googleドキュメントに見出しを追加したい

今回の例では、ドキュメントの末尾に「見出しD」 を追加します。 見出しA, B, C, Dのスタイルは、見出し3 ( HEADING3 ) に設定しています。  下記Code.gsの  GOOGLE_DOCUMENT_URL を設定して  addHeadingToEnd()  を...