[Proposal] Array.prototype.includes should evaluate object.toString and/or object.valueOf when determining a match

Andrea Giammarchi andrea.giammarchi at gmail.com
Wed Jun 20 18:33:08 UTC 2018


It looks like you want included to use `==` for comparison, opening a whole
new world of issues.

You have `some` and your code to do that with ease, same goes for `find` or
`findIndex`, very appropriate for this use case.

```js
items.some(o => o == 'abc');
```

Regards

On Wed, Jun 20, 2018 at 8:27 PM, Mike Simon <nixkuroi at gmail.com> wrote:

> [Proposal] Array.prototype.includes should evaluate object.toString
> and/or object.valueOf when determining a match
>
> The problem:
>
> If I have a list of objects that contain a toString() prototype that
> returns a value from the object, Array.prototype.includes does not return
> true if the value/string returned from the object is a match for the
> parameter value.
>
> Test code:
>
> var thingy = function(name) {this.name=name;};
> thingy.prototype.valueOf = function(){return this.name};
> thingy.prototype.toString = function(){return this.name};
> var items = [new thingy('abc'),new thingy('def')];
> var inc = items.includes('abc');
> alert(items[0]); // alerts abc
> alert(inc); // returns false
>
> While it’s possible to create this as a list of strings using map, this
> would seem to conserve memory, as well as reduce the complexity of the code
> to perform this operation.
>
> Link: https://developer.mozilla.org/en-US/docs/Web/
> JavaScript/Reference/Global_Objects/Array/includes
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20180620/7ef7a02e/attachment-0001.html>


More information about the es-discuss mailing list