【面试题】实现 queryParse 函数,完成解析 URL 参数的功能

问题:实现 queryParse 函数,完成解析 URL 参数的功能

/**
  * 问题:实现 queryParse 函数,完成解析 URL 参数的功能
  *
  * 用法:
  * ```js
  * const href = 'https://a.b.c?name=abc&age=24&code=%E6%B5%8B%E8%AF%95#main';
  * const params = queryParse(href);
  * console.log(params); // {name: 'abc', age: 24, ...等 }
  * ```
  * @param url
  * @returns object
  */

参考答案:

function queryParse(url) {
  // 获取查询参数并转换成 URLSearchParams 对象
  const searchParams = new URLSearchParams(new URL(url).search);
  // 准备普通空对象
  const params = {}
  // 遍历 URLSearchParams 对象
  for (const [key, value] of searchParams) {
    // 键值对存储
    params[key] = value
  }
  // 返回结果
  return params
}

const href = 'https://a.b.c?name=abc&age=24&code=%E6%B5%8B%E8%AF%95#main';
const params = queryParse(href);
console.log(params); // {name: 'abc', age: 24, ...等 }
posted @ 2023-02-07 11:04  MegaSu  阅读(153)  评论(0编辑  收藏  举报