Array.prototype.includes
This chapter describes the ECMAScript 2016 feature “Array.prototype.includes
” by Domenic Denicola and Rick Waldron.
includes
The Array method includes
has the following signature:
It returns true
if value
is an element of its receiver (this
) and false
, otherwise:
includes
is similar to indexOf
– the following two expressions are mostly equivalent:
The main difference is that includes()
finds NaN
, whereas indexOf()
doesn’t:
includes
does not distinguish between +0
and -0
(which is how almost all of JavaScript works):
Typed Arrays will also have a method includes()
:
includes
and not contains
?Array.prototype
).includes
and not has
?has
is used for keys (Map.prototype.has
), includes
is used for elements (String.prototype.includes
). The elements of a Set can be viewed as being both keys and values, which is why there is a Set.prototype.has
(and no includes
).String.prototype.includes
works with strings, not characters. Isn’t that inconsistent w.r.t. Array.prototype.includes
?includes
worked exactly like string includes
, it would accept arrays, not single elements. But the two includes
follow the example of indexOf
; characters are seen as a special case and strings with arbitrary lengths as the general case.Array.prototype.includes
(Domenic Denicola, Rick Waldron)