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
が重複しているやつがあれば、ログに出力される。