domenic at domenicdenicola.com
Wed Mar 5 08:19:52 PST 2014
Personally I think the more useful model to follow than `String.prototype.contains` is `Set.prototype.has`.
From: es-discuss <es-discuss-bounces at mozilla.org> on behalf of Rick Waldron <waldron.rick at gmail.com>
Sent: Wednesday, March 05, 2014 11:11
To: Sebastian Zartner
Subject: Re: Array.prototype.contains
On Wed, Mar 5, 2014 at 7:04 AM, Sebastian Zartner <sebastianzartner at gmail.com<mailto:sebastianzartner at gmail.com>> 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.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the es-discuss