lib/parse.js
function parseNums(obj, options) {
  var result = Array.isArray(obj) ? [] : {},
      key,
      value,
      parsedValue;

  for (key in obj) {
    if (obj.hasOwnProperty(key)) {
      value = obj[key];
      parsedValue = options.parser.call(null, value, 10, key);

      if (typeof value === 'string' && !isNaN(parsedValue)) {
        result[key] = parsedValue;
      }
      else if (value.constructor === Object || Array.isArray(value)) {
        result[key] = parseNums(value, options);
      }
      else {
        result[key] = value;
      }
    }
  }

  return result;
}
function parseNums(obj, options) {
  var result = Array.isArray(obj) ? [] : {},
      key,
      value,
      parsedValue;

  for (key in obj) {
    if (obj.hasOwnProperty(key)) {
      value = obj[key];
      parsedValue = options.parser.call(null, value, 10, key);

      if (typeof value === 'string' && !isNaN(parsedValue)) {
        result[key] = parsedValue;
      }
      else if (value.constructor === Object || Array.isArray(value)) {
        result[key] = parseNums(value, options);
      }
      else {
        result[key] = value;
      }
    }
  }

  return result;
}
function parseNums ( obj , options ) { var result = Array . isArray ( obj ) ? [ ] : { } , key , value , parsedValue ; for ( key in obj ) { if ( obj . hasOwnProperty ( key ) ) { value = obj [ key ] ; parsedValue = options . parser . call ( null , value , 10 , key ) ; if ( typeof value === 'string' && ! isNaN ( parsedValue ) ) { result [ key ] = parsedValue ; } else if ( value . constructor === Object || Array . isArray ( value ) ) { result [ key ] = parseNums ( value , options ) ; } else { result [ key ] = value ; } } } return result ; }
Attempts to convert object properties recursively to numbers.
@param  {Object}    obj             - Object to iterate over.
@param  {Object}    options         - Options.
@param  {Function}  options.parser  - Parser to process string with. Should return NaN if not a valid number. Defaults to parseInt.
@return {Object}    Returns new object with same properties (shallow copy).
Attempts to convert object properties recursively to numbers .