LANG SELRCT

コードを書く場所

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()