javascriptでobject配列の重複を除去する
[...new Set(array)]
を使えば
配列の重複を除去することができるが、objectの場合はうまく行かない
多分内部で使っている参照の値が違うと、それだけで違うobject扱いされるからだと思う
js[...new Set(array.map(value => JSON.stringify(value)))].map(value => JSON.parse(value));
函数は欠落する 一度生成したobjectを使い回せば、
Set<T>で重複除去できる
>それは {foo:45,bar:77}
とオブジェクトリテラルを使って新しいオブジェクトを作り直しているからですね。それぞれ別々のオブジェクトなので別々のものとして扱われます。
> こんな感じで、オブジェクトリテラルで毎回新しいオブジェクトを生成せずに、一度生成したものを使い回せばちゃんと重複削除できます。
jsconst obj = { foo: 45, bar: 77 };
const set = new Set([obj, obj]);
console.log(Array.from(set)) // [{ foo: 45, bar: 77 }]
Thanks,
!