Sebastian Zartner (2014-03-05T12:04:37.000Z)
>
>   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

Sebastian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20140305/e6871a6d/attachment.html>
domenic at domenicdenicola.com (2014-03-20T16:07:28.045Z)
> 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.

> `.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.

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