LANG SELRCT

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

2018年4月21日土曜日

配列の中で特定の値がいくつ存在するか件数を取得したい


["す", "も", "も", "も", "も", "も", "も", "も", "も", "の", "う", "ち"]

という配列の中で

"も"

はいくつ存在するか



コード.gs
var count = 0;
function get_match_count() {
  var array = ["す", "も", "も", "も", "も", "も", "も", "も", "も", "の", "う", "ち"];
  var filtered = array.filter(judge);
  Logger.log([filtered, count]);
}

function judge(value_i, index) {
  var target = "も";
  pattern = "^" + target + "$";
  var regexp = new RegExp(pattern);
  var result = regexp.test(value_i);
  if (result === true) {
    count++;
    Logger.log(index)
  }
  return result;
}
意訳
countの初期値は0
この機能がやること
重複を含む配列
一致した値で新しい配列を作って
countと一緒にログに出す


この機能がやること
探す文字列を決める
その文字で始まってその文字で終わる→完全一致にして
正規表現オブジェクトを作って
渡されているvalue(配列内の各値)と一致したらtrueを、一致しなかったらfalseを返すtestを使って
もしtrueなら
countに1を足して
indexをログに出す

resultを返す



実行結果


 [[も, も, も, も, も, も, も, も], 8.0]

"も" は8個存在する