javascript underscoreを使って配列内の値をグルーピングする

javascript underscoreを使って配列内の値をグルーピングする

javascriptで、underscoreを使って配列内に指定した値が含まれているかを判定するサンプルコードを掲載してます。ブラウザはchromeを使用しています。

環境

  • OS windows10 pro 64bit
  • Apache 2.4.43
  • underscore 1.13.4
  • ブラウザ chrome 103.0.5060.114

underscore使用

こちらのサイトから最新版を確認して、CDN版を使用してます。

<script src="https://cdn.jsdelivr.net/npm/underscore@1.13.4/underscore-umd-min.js"></script>

グルーピングする

配列に条件を指定してグルーピングするには、「_.groupBy」を使用します。
※オブジェクトでグルーピングされた結果が返ります。

const arr = [1,2,5,8,10,66,69];

const result = _.groupBy(arr,function(num){ 
    return num % 2; // 偶数・奇数に分ける
});

console.log( result );
console.log( typeof result ); // object

実行結果

条件さえ指定すれば、簡単にグルーピングすることができます。
例えば、文字列の長さによってグルーピングするには、以下となります。

const arr = ['aaa','bbbb','ccc','dddd','ee'];

const result = _.groupBy(arr,function(str){ 
    return str.length; // 文字列の長さによってわける
});

console.log( result );

実行結果

グルーピングしたものをカウント

グルーピングしたものをカウントするは場合は「_.countBy」を使用します。

const arr = ['aaa','bbbb','ccc','dddd','ee'];

const result = _.countBy(arr,function(str){ 
    return str.length; // 文字列の長さによってわける
});

console.log( result );
// {2: 1, 3: 2, 4: 2}

実行結果