見出し画像

数値リストをグルーピングする関数の紹介

こんにちわ。nap5です。


今回は小ネタですが、知っておくと小回りが利く便利だと思うので、紹介します。


このように数値リストが連番があって、それらを先頭から順にグループ番号を付与する関数です。


$ node main.js
[
  { g: 1, n: 1 },
  { g: 1, n: 2 },
  { g: 1, n: 3 },
  { g: 1, n: 4 },
  { g: 2, n: 5 },
  { g: 2, n: 6 },
  { g: 2, n: 7 },
  { g: 2, n: 8 },
  { g: 3, n: 9 },
  { g: 3, n: 10 },
  { g: 3, n: 11 }
]


これが実装です。

const groupSeqNum = ({list, grp}) => {
  let g = 0;
  return list.reduce((a, c, i) => {
    g = g + (c % grp === 1 ? 1 : 0);
    return [...a, {g, n: c}];
  }, []);
};

const a = [...Array(11)].map((n, index) => {
  return index + 1;
});

const result = groupSeqNum({list: a, grp: 4});

console.log(result);


ショートハンドにいかがでしょうか?


余談ですが、Hashnodeで記事書いています。
よかったらサポートしてください。


最後に、UdemyでFaunaDBを使ったコースを公開しました。
よかったらサポートしてください。



簡単ですが、以上です。

この記事が気に入ったらサポートをしてみませんか?