オブジェクトの配列のなかで、キーが重複しているオブジェクトのインデックスを取得する必要があったので、備忘録として残しておきます。
言葉だと伝わりにくいですが、以下のニュアンスとなります。
sample.js
const list = [
{ id: 1, name: "banana" },
{ id: 2, name: "apple" },
{ id: 3, name: "grape" },
{ id: 2, name: "apple" },
];
// idが重複している 1, 3 の値を取得したい
書き方は色々あると思いますが、以下で対応しました。
sample.js
// for文で回すが、重複がある場合はduplicateLengthが1より大きくなる
for (let i = 0; i < list.length; i++) {
const duplicateLength = list.filter((obj) => obj.id === list[i].id).length;
duplicateLength > 1 ? console.log("index",i) : null;
}
> "index" 1
> "index" 3