33 lines
925 B
Plaintext
33 lines
925 B
Plaintext
== Why is this an issue?
|
|
|
|
Most checks against an `indexOf` value compare it with -1 because 0 is a valid index. Checking against `> 0` ignores the first element, which is likely a bug.
|
|
|
|
[source,javascript,diff-id=1,diff-type=noncompliant]
|
|
----
|
|
let arr = ["blue", "red"];
|
|
|
|
if (arr.indexOf("blue") > 0) { // Noncompliant
|
|
// ...
|
|
}
|
|
----
|
|
|
|
Moreover, if the intent is merely to check the presence of the element, and if your browser version supports it, consider using `includes` instead.
|
|
|
|
[source,javascript,diff-id=1,diff-type=compliant]
|
|
----
|
|
let arr = ["blue", "red"];
|
|
|
|
if (arr.includes("blue")) {
|
|
// ...
|
|
}
|
|
----
|
|
|
|
This rule raises an issue when an `indexOf` value retrieved from an array is tested against `> 0`.
|
|
|
|
== Resources
|
|
=== Documentation
|
|
|
|
* MDN web docs - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes[``++Array.prototype.includes()++``]
|
|
|
|
include::../rspecator.adoc[]
|