index.js
function parseString(str, options){
  var ret = reduce(String(str).split(options.separator), function(ret, pair){
    var eql = indexOf(pair, '=')
      , brace = lastBraceInKey(pair)
      , key = pair.substr(0, brace || eql)
      , val = pair.substr(brace || eql, pair.length)
      , val = val.substr(indexOf(val, '=') + 1, val.length);

    // ?foo
    if ('' == key) key = pair, val = '';
    if ('' == key) return ret;

    return merge(ret, decode(key), decode(val));
  }, { base: {} }).base;

  return compact(ret);
}
function parseString(str, options){
  var ret = reduce(String(str).split(options.separator), function(ret, pair){
    var eql = indexOf(pair, '=')
      , brace = lastBraceInKey(pair)
      , key = pair.substr(0, brace || eql)
      , val = pair.substr(brace || eql, pair.length)
      , val = val.substr(indexOf(val, '=') + 1, val.length);

    // ?foo
    if ('' == key) key = pair, val = '';
    if ('' == key) return ret;

    return merge(ret, decode(key), decode(val));
  }, { base: {} }).base;

  return compact(ret);
}
function parseString ( str , options ) { var ret = reduce ( String ( str ) . split ( options . separator ) , function ( ret , pair ) { var eql = indexOf ( pair , '=' ) , brace = lastBraceInKey ( pair ) , key = pair . substr ( 0 , brace || eql ) , val = pair . substr ( brace || eql , pair . length ) , val = val . substr ( indexOf ( val , '=' ) + 1 , val . length ) ; // ?foo if ( '' == key ) key = pair , val = '' ; if ( '' == key ) return ret ; return merge ( ret , decode ( key ) , decode ( val ) ) ; } , { base : { } } ) . base ; return compact ( ret ) ; }
Parse the given str.
Parse the given str .