Arrays in JavaScript have several methods for filtering, mapping, or folding that require a callback. Not having a return statement in such a
callback function is most likely a mistake, because processing of the array uses the return value of the callback. If there is no return, callback
will implicitly return undefined
, which will likely fail.
This rule applies for the following methods of an array:
-
Array.from
-
Array.prototype.every
-
Array.prototype.filter
-
Array.prototype.find
-
Array.prototype.findIndex
-
Array.prototype.map
-
Array.prototype.reduce
-
Array.prototype.reduceRight
-
Array.prototype.some
-
Array.prototype.sort
Noncompliant Code Example
let arr = ["a", "b", "c"];
let merged = arr.reduce(function(a, b) {
a.concat(b);
}); // Noncompliant: No return statement, will result in TypeError
Compliant Solution
let arr = ["a", "b", "c"];
let merged = arr.reduce(function(a, b) {
return a.concat(b);
}); // merged === "abc"