忍者ブログ

ひつ(じのひよこが)プログラミングします。
お仕事や趣味で困ったこととか、何度も「あれ?どうだったかしら」と調べたりしたこととか、作ったものとか、こどものこととかを書きます
★前は週末定期更新でしたが今は不定期更新です

2024/05    04« 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  »06

JavaScript で配列をグルーピングする

そこそこの頻度で書くので。

const defaultGetGroupId = (value, number, array) => {
  return value;
};
const groupArray = (array, getGroupId=defaultGetGroupId) => {
  const result = {};
  array.forEach((value, i) => {
    const id = getGroupId(value, i, array);
    if( ! result[id] ) {
      result[id] = [];
    }
    result[id].push( value );
  });
  return result;
};

以下のように使う。

groupArray([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 ], (value) => {
  return (value % 2 === 0) ? 'even' : 'odd';
});
/* 以下のようになる
{
  "odd": [
    1, 3, 5, 7, 9, 11, 13
  ],
  "even": [
    2, 4, 6, 8, 10, 12
  ]
}
**/

PR

コメント

ただいまコメントを受けつけておりません。

ブログ内検索

P R