首页 > 解决方案 > 使用纯js从参数创建嵌套哈希?

问题描述

我有这个聪明的小块香草 Javascript 将 url 参数转换为哈希:

"a=a&b=b".split("&").reduce((function(params, param) {
  var param_split = param.split("=").map(function(value) {
    return decodeURIComponent(value.replace("+", " "));
  });
  params[param_split[0]] = param_split[1];
  return params;
}), {});

输出此哈希:

{
  a: "a",
  b: "b"
}

但有时我会得到这样嵌套的 url 参数:

"a=a&b%5Bc%5D=bc&b%5Bd%5D=bd"

我的脚本将输出:

{
  a: "a",
  b[c]: "bc",
  b[d]: "bd"
}

我应该怎么做才能输出这样的嵌套哈希?:

{
  a: "a",
  b: {
    c: "bc",
    d: "bd"
  }
}

标签: javascript

解决方案


推荐阅读