Bonfire: Arguments Optional

by Luis Valle

JavaScript

function add() {
  if (arguments.length > 1) {
	var finNum = 0;
  
    for (var i=0; i < arguments.length; i++) {
      if (isNaN(arguments[i]) || typeof arguments[i] === 'string') {
          return undefined;
      } else {
          finNum = finNum + arguments[i];
      }
    }

    return finNum;
  } else {
    finNumx = arguments[0];
    if (isNaN(finNumx) || typeof finNumx === 'string') {
    	alert('is Junk');
      return undefined;
    } else {
    	return function () {      	
      	if (isNaN(arguments[0]) || typeof arguments[0] === 'string' || Array.isArray(arguments[0])) {
          return undefined;
        } else {
					return arguments[0] + finNumx;
        }
      };      
    }    
  }
}

alert(add(2)([3]));