Metadata

ID: javascript-code-style/max-function-lines

Language: JavaScript

Severity: Warning

Category: Code Style

Description

This rule ensures that a function is not too long. A function should be less than 200 lines, or it will be hard to understand.

Non-Compliant Code Examples

function dummyFunction() {
  var x = 0;
  var y = 1;
  var z = 2;
  var arr = [1, 2, 3, 4, 5];
  var obj = { name: "John", age: 30 };
  
  // Start of dummy code
  for (var i = 0; i < 10; i++) {
    x += i;
    y *= i;
    z -= i;
    
    if (x > y && y < z) {
      x--;
      z++;
    } else {
      y++;
    }
  }
  
  if (x > 100) {
    arr.push(6);
  } else if (x < 0) {
    arr.pop();
  } else {
    arr.splice(2, 1, 7);
  }
  
  for (var j = 0; j < arr.length; j++) {
    if (arr[j] % 2 === 0) {
      arr[j] *= 2;
    } else {
      arr[j] += 2;
    }
  }
  
  var sum = 0;
  arr.forEach(function(num) {
    sum += num;
  });
  
  if (sum > 20) {
    obj.name = "Jane";
    obj.age = 25;
  } else {
    obj.name = "Alice";
    obj.age = 40;
  }
  
  // End of dummy code
  
  // More dummy code...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  
  // Final dummy code
  var result = "Result: ";
  if (obj.age < 30) {
    result += "Young ";
  } else if (obj.age > 30) {
    result += "Old ";
  } else {
    result += "Middle-aged ";
  }
  
  result += obj.name;
  
  return result;
}

() => {
  var x = 0;
  var y = 1;
  var z = 2;
  var arr = [1, 2, 3, 4, 5];
  var obj = { name: "John", age: 30 };
  
  // Start of dummy code
  for (var i = 0; i < 10; i++) {
    x += i;
    y *= i;
    z -= i;
    
    if (x > y && y < z) {
      x--;
      z++;
    } else {
      y++;
    }
  }
  
  if (x > 100) {
    arr.push(6);
  } else if (x < 0) {
    arr.pop();
  } else {
    arr.splice(2, 1, 7);
  }
  
  for (var j = 0; j < arr.length; j++) {
    if (arr[j] % 2 === 0) {
      arr[j] *= 2;
    } else {
      arr[j] += 2;
    }
  }
  
  var sum = 0;
  arr.forEach(function(num) {
    sum += num;
  });
  
  if (sum > 20) {
    obj.name = "Jane";
    obj.age = 25;
  } else {
    obj.name = "Alice";
    obj.age = 40;
  }
  
  // End of dummy code
  
  // More dummy code...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  
  // Final dummy code
  var result = "Result: ";
  if (obj.age < 30) {
    result += "Young ";
  } else if (obj.age > 30) {
    result += "Old ";
  } else {
    result += "Middle-aged ";
  }
  
  result += obj.name;
  
  return result;
}

const dummyFunction = function() {
  var x = 0;
  var y = 1;
  var z = 2;
  var arr = [1, 2, 3, 4, 5];
  var obj = { name: "John", age: 30 };
  
  // Start of dummy code
  for (var i = 0; i < 10; i++) {
    x += i;
    y *= i;
    z -= i;
    
    if (x > y && y < z) {
      x--;
      z++;
    } else {
      y++;
    }
  }
  
  if (x > 100) {
    arr.push(6);
  } else if (x < 0) {
    arr.pop();
  } else {
    arr.splice(2, 1, 7);
  }
  
  for (var j = 0; j < arr.length; j++) {
    if (arr[j] % 2 === 0) {
      arr[j] *= 2;
    } else {
      arr[j] += 2;
    }
  }
  
  var sum = 0;
  arr.forEach(function(num) {
    sum += num;
  });
  
  if (sum > 20) {
    obj.name = "Jane";
    obj.age = 25;
  } else {
    obj.name = "Alice";
    obj.age = 40;
  }
  
  // End of dummy code
  
  // More dummy code...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  // ...
  
  // Final dummy code
  var result = "Result: ";
  if (obj.age < 30) {
    result += "Young ";
  } else if (obj.age > 30) {
    result += "Old ";
  } else {
    result += "Middle-aged ";
  }
  
  result += obj.name;
  
  return result;
}

class A {
    dummyFunction() {
        var x = 0;
        var y = 1;
        var z = 2;
        var arr = [1, 2, 3, 4, 5];
        var obj = { name: "John", age: 30 };
        
        // Start of dummy code
        for (var i = 0; i < 10; i++) {
            x += i;
            y *= i;
            z -= i;
            
            if (x > y && y < z) {
            x--;
            z++;
            } else {
            y++;
            }
        }
        
        if (x > 100) {
            arr.push(6);
        } else if (x < 0) {
            arr.pop();
        } else {
            arr.splice(2, 1, 7);
        }
        
        for (var j = 0; j < arr.length; j++) {
            if (arr[j] % 2 === 0) {
            arr[j] *= 2;
            } else {
            arr[j] += 2;
            }
        }
        
        var sum = 0;
        arr.forEach(function(num) {
            sum += num;
        });
        
        if (sum > 20) {
            obj.name = "Jane";
            obj.age = 25;
        } else {
            obj.name = "Alice";
            obj.age = 40;
        }
        
        // End of dummy code
        
        // More dummy code...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        // ...
        
        // Final dummy code
        var result = "Result: ";
        if (obj.age < 30) {
            result += "Young ";
        } else if (obj.age > 30) {
            result += "Old ";
        } else {
            result += "Middle-aged ";
        }
        
        result += obj.name;
        
        return result;
    }
}

Compliant Code Examples

function myTest() {
    // less than 200 lines
}

() => {
    // less than 200 lines
}

class A {
    foo() {
        // less than 200 lines
    }
}