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" ---- ifdef::env-github,rspecator-view[] == Comments And Links (visible only on this page) include::comments-and-links.adoc[] endif::env-github,rspecator-view[]