Search code examples
javascriptecmascript-6setunique

A ES6 Set unique via inner key value


Is it possible to have a unique set based on an inner key with out processing it through a function like uniquBy?

export const state = new Set()

state.add({name: 'dank meme'});
state.add({name: 'dank meme'});

console.log(state.length)
// 2

How can I make this Set unique by name value?


Solution

  • No, it is not. Adding equal objects to a Set as you do does result in two objects added to the set because they are distinct objects (different references), accidentally with the same content.
    You should build a new class, perhaps inheriting from Set, implementing the behaviour you ask.