LANG SELRCT

Google Apps Scriptのコードを書く場所  (新規作成: スプレッドシート | スクリプトエディタ

2019年6月26日水曜日

配列内で重複する値の発生数を取得してオブジェクトを配列に入れて返す2


配列内で重複する値の発生数を取得してオブジェクトを配列に入れて返す
では

["ス", "モ", "モ", "も", "モ", "モ", "も", "モ", "モ", "の", "う", "ち"]

という配列から

重複件数を取得して以下のようなオブジェクトを作りたい

[
  {う=1.0},
  {ち=1.0},
  {の=1.0},
  {も=2.0},
  {ス=1.0},
  {モ=6.0}
]





コード.gs
function get_result(){
  var array = ["ス", "モ", "モ", "も", "モ", "モ", "も", "モ", "モ", "の", "う", "ち"];
  var result = get_match_count(array);
  var desc = sort_obj(result)
  Logger.log(desc);
}

function get_match_count(array){
  var sorted = array.sort();
  var arrays = [];
  var count;
  var unique_i;
  for(var i = 0; i < sorted.length; i++){
    var obj = {}
    var value = sorted[i];
    if(value === sorted[i-1]){
      count++;
      arrays[unique_i][value] = count;
    }else{
      count = 1;
      obj[value] = count;
      unique_i = arrays.length;
      arrays.push(obj);
    }
  }
  return arrays;
}

function sort_obj(arrays){
  var desc = arrays.sort(sorting);
  return desc;
}

function sorting(a, b){
  return b["count"] - a["count"];
}


関連記事

配列内で重複する値の発生数を取得してオブジェクトを配列に入れて返す


最新の投稿

JIRA APIで選択リスト(複数選択)を課題作成時に選択してPOSTしたい

JIRA APIを利用して選択リスト(複数選択)フィールドに値を入れたくて書いたコードです。 コード.gsのこの部分で複数選択の値を選択できました。 customfield_10043 は手元のJIRAでの選択リスト(複数選択)のフィールドIDなので、各自の環境によって異なります...