schedule2019-02-15

JavaScriptの配列で要素のカウントと連想配列にする方法

配列で特定の要素をカウントする方法についてです。 filterを使うと簡単に書けます。

要素をカウントする

ワンライナーで書けます。

let array = ['hoge', 'piyo', 'hoge', 'piyo', 'hoge'];

// 要素数を数える
let count =array.filter(function(x){return x==='hoge'}).length;

console.log(count);
// 3

要素と要素数の連想配列を作る

使う機会がありそうな要素数の連想配列を返す関数を作ってみた。

let array = ['hoge', 'piyo', 'hoge', 'piyo', 'hoge']


function toCountDict(array){
  let dict = {};
  for(let key of array){
      dict[key] = array.filter(function(x){return x==key}).length;
  }
  return dict;
}

console.log(counts(array));
// { "hoge": 3, "piyo": 2 }

もっときれいなコードの書き方はあると思うが、とりあえず目的の連想配列が出来ている。