问题:实现 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, ...等 }

【面试题】实现 queryParse 函数,完成解析 URL 参数的功能的更多相关文章

  1. 前端面试题整理——手写方法解析URL参数

    //拆分字符串形式 function queryToObj() { const res = {} const search = location.search.substr(1);//去掉前面的&qu ...

  2. 正则表达式解析url参数

    解析url参数正则:(?<=\?|&)[\w\={}\\\\,-:'\s'""]*(?=[^#\s]|) 意思是(?<=\?|&) 从?或&符号 ...

  3. jQuery 解析 url 参数

    应用场景: 三毛:我现在拿到一个 url 地址(https://www.google.com/search?dcr=&ei=5C&q=param),我现在要获取 location.se ...

  4. JS解析URL参数为对象

    曲不离口,拳不离手 JS小编程练习之一:解析URL参数为对象 url:http://www.baidu.com/we/index.html?id=098&aaa=123&ccc=456 ...

  5. nodejs解析url参数的三种方法

    要解析的url:http://127.0.0.1:8090/?name=cpc&age=21 利用js字符串操作函数进行解析 const myserver = require("ht ...

  6. 解析URL参数

    1.拿到一个完整url后,如何解析该url得到里面的参数. /** * 解析url中参数信息,返回参数数组 */ function convertUrlQuery($query) { $queryPa ...

  7. js解析url参数

    1.采用正则,这也是现在使用最为方便的 function getQueryString(name) { const reg = new RegExp("(^|&)" + n ...

  8. Android webView解析URL参数

    2015年6月18日 13:56:21 星期四 又当爹又当娘啊............ public void onPageFinished(WebView view, String url) { s ...

  9. 一个解析url参数方法

    function getRequestParameter(a) { var b = document.location.search || document.location.hash; if (a ...

  10. js解析url参数如http://www.taobao.com/index.php?key0=21&key1=你哈&(获取key0和key1的值)

    function parseQueryString(url) { var pos; var obj = {}; if ((pos = url.indexOf("?")) != -1 ...

随机推荐

  1. 转载 Python 存储与读取HDF5文件

    HDF5 简介 HDF(Hierarchical Data Format)指一种为存储和处理大容量科学数据设计的文件格式及相应库文件.HDF 最早由美国国家超级计算应用中心 NCSA 开发,目前在非盈 ...

  2. Uniapp 获取当前版本号

    plus.runtime.getProperty(plus.runtime.appid, function(wgtinfo) { oldversion = wgtinfo.versionCode // ...

  3. Intellij IDEA部署Web项目到tomcat时提示:Error:Cannot build Artifact ':war exploded' because it is included into a circul

    在Idea中使用Maven创建父子工程,第一个Model的那个项目可以很好的运行,在创建一个Model运行时报这个错.原因是tomcat部署了多个Web项目,可能最开始是两个项目的配置文件混用用,最后 ...

  4. ThreeJs-12使用着色器加工材质

    一.three框架材质原理与应用 其实three里面所有的材质不管是基础还是点等等之类最终都会编译为shader然后执行,所以如果拿到一个材质我想对某个地方小改一下,那么也是可以用shader来进行修 ...

  5. 《C++并发编程实战》读书笔记(2):线程间共享数据

    1.使用互斥量 在C++中,我们通过构造std::mutex的实例来创建互斥量,调用成员函数lock()对其加锁,调用unlock()解锁.但通常更推荐的做法是使用标准库提供的类模板std::lock ...

  6. unordered_map比map慢?

    先说结论:unordered_map不维护键的顺序,因此不能按顺序访问元素,因此如果你需要遍历表时若选用unordered_map就肯定比map慢 1. 数据结构与底层实现 unordered_map ...

  7. Angular-教程

    https://www.runoob.com/angularjs/angularjs-tutorial.html https://www.runoob.com/angularjs2/angularjs ...

  8. springboot-总结列表

    一.Spring Boot 具有以下特点: 1. 独立运行的 Spring 项目 Spring Boot 可以以 jar 包的形式独立运行,Spring Boot 项目只需通过命令" jav ...

  9. React、Angular、Vue.js三者比较指南

    Vue-React-Angular三者区别   1. 基本概念Angular 是一个应用设计框架与开发平台,用于创建高效.复杂.精致的单页面应用. React 是一个用于构建用户界面的 JavaScr ...

  10. window service 2012 R2 0x8007000d

    今天遇到了一个很无语的问题,我的一个.net core 项目,部署到IIS上之后,启动网站,报500.19的错误.尝试了网上N种办法始终没办法解决,最后重装了我的.net core,解决了. 第一步: ...