将URL参数转换为对象

创建一个包含当前URL参数的对象。

  • 使用适当的正则表达式和String.prototype.match()来获取所有的键值对。
  • 使用Array.prototype.reduce()将它们映射并组合成一个单一的对象。
  • location.search作为参数传递给当前的URL。
const getURLParameters = url =>
  (url.match(/([^?=&]+)(=([^&]*))/g) || []).reduce(
    (a, v) => (
      (a[v.slice(0, v.indexOf('='))] = v.slice(v.indexOf('=') + 1)), a
    ),
    {}
  );

getURLParameters('google.com'); // {}
getURLParameters('http://url.com/page?name=Adam&surname=Smith');
// {name: 'Adam', surname: 'Smith'}