配列で重複している要素数をカウントしたい、と思って調べていると、PHPにはarray_count_values
という関数があるそうで便利だな、と思いました。
PHP: array_count_values - Manual
ただ、自分はJavaScriptでほしいと思っていたので、調べると、ドンピシャのstack overflowの記事がヒットしたので共有しておきます。
php - array_count_values for JavaScript instead - Stack Overflow
var myCurrentArray = new Array("apple","banana","apple","orange","banana","apple");
var counts = {};
for(var i=0;i< myCurrentArray.length;i++)
{
var key = myCurrentArray[i];
counts[key] = (counts[key])? counts[key] + 1 : 1 ;
}
alert(counts['apple']);
alert(counts['banana']);
非常に分かりやすいですね。自分もこういうのすぐ思いつけるようになりたいです。
追記
npmのパッケージを調べるとcount-array-values
というのが見つかったので使い勝手優先するならこっちで良さそうです。