JSFiddle - React, Tailwind, and code Playground

JavaScript

var q='array[]=1&array[]=2&key=value&empty=#hash';
function qs(a){
 if(!a)return {};
 a=a.split('#')[0].split('&');
 var b=a.length,c={},d,k,v;
 while(b--){
  d=a[b].split('=');
  k=d[0].replace('[]',''),v=decodeURIComponent(d[1]||'');
  c[k]?typeof c[k]==='string'?(c[k]=[v,c[k]]):(c[k].unshift(v)):c[k]=v;
 }
 return c
}
document.body.appendChild(document.createElement('pre')).textContent=JSON.stringify(qs(q),null,'\t');