URL Query String Params Parser in JavaScript

ES6 vanilla version

"use strict";

/**
 *
 * @author xgqfrms
 * @license MIT
 * @copyright xgqfrms
 * @created 2020-08-01
 * @modified
 *
 * @description
 * @difficulty Easy Medium Hard
 * @complexity O(n)
 * @augments
 * @example
 * @link https://www.nowcoder.com/practice/a3ded747e3884a3c86d09d88d1652e10?tpId=2&&tqId=10852&rp=1&ru=/ta/front-end&qru=/ta/front-end/question-ranking
 * @link https://developer.mozilla.org/en-US/docs/Web/API/Location
 * @link https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams
 * @solutions
 *
 */

const log = console.log;

function getUrlParam(sUrl, sKey) {
  // const log = console.log;
  // const url = `http://www.xgqfrms.xyz?key=1&key=2&key=3&test=4#hehe`;
  const url = sUrl.slice(sUrl.indexOf(`?`) + 1, sUrl.indexOf(`#`));
  const searchParams = url.split(`&`).reduce((obj, item) => {
    const [k, v] = item.split(`=`);
    if(!obj[k]) {
      obj[k] = [v];
    } else {
      obj[k].push(v);
    }
    return obj;
  }, {});
  if(sKey) {
    if(searchParams[sKey]) {
      const keys = searchParams[sKey];
      return keys.length > 1 ? keys : keys[0];
    } else {
      return "";
    }
  } else {
    return searchParams;
  }
}

Web API version

"use strict";

/**
 *
 * @author xgqfrms
 * @license MIT
 * @copyright xgqfrms
 * @created 2020-08-01
 * @modified
 *
 * @description
 * @difficulty Easy Medium Hard
 * @complexity O(n)
 * @augments
 * @example
 * @link https://www.nowcoder.com/practice/a3ded747e3884a3c86d09d88d1652e10?tpId=2&&tqId=10852&rp=1&ru=/ta/front-end&qru=/ta/front-end/question-ranking
 * @link https://developer.mozilla.org/en-US/docs/Web/API/Location
 * @link https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams
 * @solutions
 *
 */

const log = console.log;

function getUrlParam(sUrl, sKey) {
  const log = console.log;
  const a = document.createElement('a');
  // node.js & ReferenceError: document is not defined
  a.href = sUrl;
  // a.href = `http://www.xgqfrms.xyz?key=1&key=2&key=3&test=4#hehe`;
  const searchParams = new URLSearchParams(a.search);
  if(sKey) {
    if(searchParams.has(sKey)) {
      const keys = searchParams.getAll(sKey);
      return keys.length > 1 ? keys : keys[0];
    } else {
      return "";
    }
  } else {
    const obj = {};
    for (const item of searchParams) {
      const [k, v] = item;
      obj[k] = v;
    }
    return obj;
  }
}