Parse Query String

Benchmark created on


Description

compares two methods of splitting a string into parameters

Setup

var i,kv, q, parts, obj,s = 'q=convert+mpg+video+ipod&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official&&fields=23&mst=63&pp=100&sb=3&src=1&src=2&qq=nikoniko+rental+car&rlz=1C5CHFA_enJP967JP967&oq=niko&gs_lcrp=EgZjaHJvbWUqCQgAEEUYOxiABDIJCAAQRRg7GIAEMgcIARAuGIAEMgYIAhBFGEAyBggDEEUYOTIHCAQQLhiABDIQCAUQLhivARjHARiABBiOBTIKCAYQLhjUAhiABDIQCAcQLhivARjHARiABBiOBdIBCDE4NTZqMGo3qAIAsAIA&sourceid=chrome&ie=UTF-8&zx=1742615754109&no_sw_cr=1&bool=&b2'

Teardown

console.log(q)
console.log(obj)

Test runner

Ready to run.

Testing in
TestOps/sec
.map and .reduce
q = s.split("&")
    .map((pairs) => pairs.split("="))
    .reduce((acc, [k, v]) => {
      acc[k] = decodeURIComponent(v || '').replace(/\+/g, ' ') ;
      return acc;
    }, {});
ready
Parse query string with loop and .split
obj = {};
parts = s.split('&');

  for( i = 0; i < parts.length; i++ ) {
      kv = parts[i].split('=');
      obj[kv[0]] = decodeURIComponent( kv[1] || '' ).replace(/\+/g, ' ');
  }
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.