at backyard

Color my life with the chaos of trouble.

JavaScriptでJSON配列の特定のkeyにおける、重複数をカウントする使い捨てスクリプトメモ

開発をしていて必要になったので、書いた。
1回使えば役目を終えるコードだったため、使い捨てスクリプト的な形で書いている。
今後もまたどこかで使用するシーンがでてくると思ったので、こちらに書き残しておく。

なお、このスクリプトはこちらのQiitaでコメントされている方のコードを大いに参考している。
というか、そのまま引用させていただいている形だ。

JavaScriptで配列の重複している項目の数をカウントする - Qiita

書いたコード↓
なお、Node.jsで実行したので、下記のようなコードとなっている。

const getDuplicateCountList = (arr) => {
  return arr.reduce((counts, key) => {
    counts[key] = counts[key] ? counts[key] + 1 : 1;
    return counts;
  }, {});
};

(async () => {
  const ids = jsonArr.map(({ id }) => id);

  const duplicateCountObj = getDuplicateCountList(ids);
  const duplicateItemList = Object.keys(duplicateCountObj).filter(
    (key) => duplicateCountObj[key] > 1
  );
  console.log({ duplicateItemList });
})();

jsonArrには下記のようなデータが入っている想定。

[
  {
    "id": "1",
    "name": "hoge"
  },
  {
    "id": "2",
    "name": "fuga"
  },
  {
    "id": "3",
    "name": "piyo"
  },
  .
  .
  .
]

id が重複しているやつがあれば、ログに出力される。