[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
[email protected]
https://mail.mozilla.org/listinfo/es-discuss