数値リストをグルーピングする関数の紹介
こんにちわ。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を使ったコースを公開しました。
よかったらサポートしてください。
簡単ですが、以上です。
この記事が気に入ったらサポートをしてみませんか?