题解 | #获取 url 参数#

获取 url 参数

http://www.nowcoder.com/practice/a3ded747e3884a3c86d09d88d1652e10

function getUrlParam(sUrl, sKey) {
    // 获取 ? 到 #之间的字符串
  const queryStr =
    sUrl.indexOf("#") === -1
      ? sUrl.slice(sUrl.indexOf("?") + 1)
      : sUrl.slice(sUrl.indexOf("?") + 1, sUrl.indexOf("#"));
    // 根据 "&" 分隔
  const querys = queryStr.split("&");
    // 用 map 来存
  let queryMap = new Map();
  for (query of querys) {
    // query 的 Key
    const key = query.split("=")[0];
    // query 的 value
    const value = query.split("=")[1];
    // 如果 map 里面由重复的 key 就采用一个数组来存
    if (queryMap.has(key)) {
      let temp = [].concat(queryMap.get(key));
      temp.push(value);
      queryMap.set(key, temp);
    } else {
      // 没有重复的就直接设置
      queryMap.set(key, value);
    }
  }
    // 给定的参数有 则返回对应的值
  if (queryMap.has(sKey)) {
    return queryMap.get(sKey);
  } else {
    // 否则 返回 {}
    return {};
  }
}
全部评论

相关推荐

10-15 09:13
已编辑
天津大学 soc前端设计
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
1
分享
牛客网
牛客企业服务