Personally I think the more useful model to follow than 
`String.prototype.contains` is `Set.prototype.has`.


________________________________
From: es-discuss <[email protected]> on behalf of Rick Waldron 
<[email protected]>
Sent: Wednesday, March 05, 2014 11:11
To: Sebastian Zartner
Cc: es-discuss
Subject: Re: Array.prototype.contains




On Wed, Mar 5, 2014 at 7:04 AM, Sebastian Zartner 
<[email protected]<mailto:[email protected]>> wrote:
But it seems the thread fizzled out a couple years ago, and 
Array.prototype.contains didn't seem to make its way into ES6. That seems odd, 
since we do have String.prototype.contains, and it seemed like it was desirable 
for DOM.
The DOM won't inherit from it directly, shall it?

Why not? A use case would be to check whether a specific node is within a 
NodeList.
It's also a standard utility function in several libraries.

Was it left out on purpose? If so, what was the justification?

I predict code like this without it:

''.contains.call([1, 2, 3], 2);  // true
.indexOf === -1 works today for this use case and will continue to.
I'd be happy to see !~arr.indexOf(el) disappear in favor of a use of 
.contains() though.

While .indexOf() just gets you the index of one item, .contains() could even be 
extended to allow to check whether an array contains several items. E.g.

.contains([1, 2, 3], [1, 3]) // true
.contains([1, 2, 3], [1, 4]) // false


String.prototype.contains already has a second parameter for "position" 
(similar to String.prototype.indexOf), for consistency an 
Array.prototype.contains should have the same second "fromIndex" parameter as 
Array.prototype.indexOf.

Rick


_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to