The problem with `Set` is that its `add` method returns `this` instead of `boolean`. If `Set.prototype.add` returned `boolean`, I would have used `Set`.
That’s why in the `select` method of my sample code, I use a custom defined method named `pushIfAbsent`. The actual type of `_values` is not `Array` but a subclass of `Array`. ``` js export class MyArray<E> extends Array<E> { /** * Adds [item] to the end of this array if it's not already in this array. * * Returns `true` is [item] was added, `false` otherwise. */ pushIfAbsent(item: E): boolean { if (!this.includes(item)) { this.push(item); return true; } return false; } /** * Removes the first occurrence of [item] from this array. * * Returns `true` if [item] was in this array, `false` otherwise. */ remove(item: E): boolean { const i = this.indexOf(item); if (i >= 0) { this.splice(i, 1); return true; } return false; } } ```
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss