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 }
もっときれいなコードの書き方はあると思うが、とりあえず目的の連想配列が出来ている。
