当前位置: 首页 > news >正文

【前端笔试题一】:解析url路径中的query参数

前言

本文记录下在笔试过程中的前端笔试编程题目,会持续更新

1. 题目:

解析 url 路径中的 query 参数,比如:‘http://building/#/skeleton?serialNumber=2023020818332821073&jobNo=210347&target=%7B%22a%22%3A%22b%22%2C%22c%22%3A%22d%22%7D&flag=tudoFlag’

需要将其转换成的格式如下:

{serialNumber: "2023020818332821073",jobNo: "210347",target: {a: "b",c: "d"}
}

2. 思路

对于 url,我们需要考虑的是:URL 是笔试时题目中给定的,还是需要我们自己获取?

如果是题目中给定的,我们直接拿来用即可,

如果题目中没给,我们则需要使用 window.location.search 进行获取,

其次,query 参数 指的是 URL 中 ? 后面的部分,且格式为: “key=value” ,所以需要对 URL 进行分割

然后再次以 & 进行分割,返回的是一个数组,数组每一项,= 前面的是值,后面的是键。

对该数组进行遍历,对每一个元素以 = 进行分割。

注意: URL中很多内容会出现 % 这样的内容,这实际上是对参数进行了URI编码

对于这类的编码参数如何处理?自然是需要进行解码decodeURIComponent,并且需要 JSON.parse()

区别是否是 URI编码的特征就是:是否包含 %

3. 代码

const url = 'http://building/#/skeleton?serialNumber=2023020818332821073&jobNo=210347&target=%7B%22a%22%3A%22b%22%2C%22c%22%3A%22d%22%7D&flag=tudoFlag'const getQueryString = (url) => {let obj = {}let arr = url.split('?')[1]let newArr = arr.split('&')newArr.forEach((item) => {let key = item.split('=')[0]let value = item.split('=')[1]if(value.indexOf('%') == -1) {// 不存在 % ,obj[key] = value} else {// 存在,需要进行解码obj[key] = JSON.parse(decodeURIComponent(value))}})return obj
}console.log(getQueryString(url))

效果如下所示:

在这里插入图片描述

相关文章:

【前端笔试题一】:解析url路径中的query参数

前言 本文记录下在笔试过程中的前端笔试编程题目,会持续更新 1. 题目: 解析 url 路径中的 query 参数,比如:‘http://building/#/skeleton?serialNumber2023020818332821073&jobNo210347&target%7B%22a%22%3A%22b%22%2C…...

K_A12_001 基于STM32等单片机采集火光火焰传感参数串口与OLED0.96双显示

K_A12_001 基于STM32等单片机采集火光火焰传感参数串口与OLED0.96双显示一、资源说明二、基本参数参数引脚说明三、驱动说明IIC地址/采集通道选择/时序对应程序:四、部分代码说明1、接线引脚定义1.1、STC89C52RC火光火焰模块1.2、STM32F103C8T6火光火焰模块五、基础知识学习与相…...

Java基础42 枚举与注解

枚举与注解一、枚举(enumeration)1.1 自定义类实现枚举1.2 enum关键字实现枚举1.2.1 enum的注意事项1.2.2 enum的使用练习1.2.3 enum的常用方法1.2.4 enum的使用细节及注意事项1.2.5 enum练习二、注解(Annotation)2.1 Override&am…...

shell的变量和引用

文章目录二、变量和引用2.1 什么是变量2.2变量的命名2.3 变量的类型2.3.1 根据数据类型分类2.3.2 根据作用域分类2.4 变量的定义2.5 shell中的引用2.6 变量的运算练习:二、变量和引用 在程序设计语言中,变量是一个非常重要的概念。也是初学者在进行Shel…...

基于PHP的招聘网站

摘要在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括在线招聘的网络应用,在外国在线招聘已经是很普遍的方式,不过国内的在线招聘可能还处于起步阶段。招聘网站具有招聘信息功能的双向选择,…...

轻松使用 Python 检测和识别车牌(附代码)

车牌检测与识别技术用途广泛,可以用于道路系统、无票停车场、车辆门禁等。这项技术结合了计算机视觉和人工智能。 本文将使用Python创建一个车牌检测和识别程序。该程序对输入图像进行处理,检测和识别车牌,最后显示车牌字符,作为…...

DVWA—CSRF-Medium跨站请求伪造中级

注意: 1、这里对XSS(Stored)关卡不熟悉的可以从这里去看http://t.csdn.cn/ggQDK 2、把难度设置成 Medium 一、这一关同样我们需要埋下伏笔,诱使用户点击来提交,首先从XSS(Stored)入手。 注意:在前面介绍…...

【电商】后台订单生成

结合商品流转的电商系列介绍了一些了,商品已经采购入库、价格税率设置好了、活动及相关模板也已经准备完毕,下面就应该上架销售了,现在接着聊下订单的生成。 订单从产生到最终的关闭需要经历很多的环节,订单也是电商系统的核心数据…...

作为公司,这个5款在线软件工具赶紧安利起来!

2023年了 ,您的企业还没使用在线软件工具吗?自从用了在线工具之后,感觉打开了新办公世界的大门,效率蹭蹭蹭地往上涨啊。对于喜欢追求效率和便捷的我来说,在线实在是太棒了!今天安利几个非常不错的在线软件工…...

面试(七)为什么一般希望将析构函数定义为虚函数

class B { public:~B() // 基类析构函数不为虚函数{cout << "B::~B()" << endl;} };class D : public B { public:~D(){cout << "D::~D()" << endl;} };void Test(B* t) {delete t;t nullptr; }int main() {B *pb new B;Test…...

MySQL必会四大函数-时间函数

一、时间日期获取函数 获取当前日期&#xff08;date&#xff09;函数&#xff1a;curdate() mysql> select curdate(); 2023-02-09 获取当前时间&#xff08;time&#xff09;函数&#xff1a;curtime() select curtime(); 08:49:27 获取当前时间戳&#xff08;date &…...

震惊!邻桌的程序猿做可视化报告竟然比我还快,带着好奇心我打开了他的电脑,发现惊天秘密,原因竟是...

其实&#xff0c;本文就是想分享一个做可视化的捷径&#xff01; 制作可视化的方式有千千万。 Excel 控若能轻车熟路驾驭 VBA&#xff0c;能玩出各种花来&#xff0c;再不济借助图表插件外援也能秒杀一众小白选 手。 会编程的&#xff0c;Echarts 几十行代码&#xff0c;分分…...

mathtype7与word冲突,无法安装,不显示工具栏的问题解决

首先无法安装&#xff0c;或安装出错时&#xff0c;要清理注册表防止以后再次出现该问题&#xff0c;以此记录留作备份。打开注册表的方法是键盘winr键同时按&#xff08;win就是Alt旁边像窗户图标的键&#xff09;&#xff0c;正常的话会跳出一个叫“运行”的家伙&#xff0c;…...

IBM AIX 升级Openssh 实现篇(编译安装)

升级成功佐证 !!!本文所有内容仅作参考,请在测试环境中具体测试完毕后才能应用于生产环境!!! [1]备份和恢复方案 开启telnet 服务,防止ssh 掉线后无法重连维护。在修复漏洞后关闭telnet。 备份该服务相关的所有文件,以便恢复。 root@TEST:/etc# vi inetd.conf #ftp…...

linux的睡眠框架及实现

睡眠 4 种模式&#xff1a;S2I (Suspend-to-Idle)&#xff1a; 挂起系统&#xff0c;IO进入低功耗模式。需配置CONFIG_SUSPEND。Standby&#xff1a;执行S2I后&#xff0c;把AP (nonboot CPU) 离线。除了CONFIG_SUSPEND的支持外&#xff0c;还需要向suspend子系统注册&#xff…...

Java面试知识点

工作也有好些年了&#xff0c;从刚毕业到前几年看过无数的面试题&#xff0c;总想着自己写一个面试总结&#xff0c;随着自我认识的变化&#xff0c;一些知识点的理解也越来越不一样了。写下来温故而知新。很多问题可能别人也总结过&#xff0c;但是答案不尽相同&#xff0c;如…...

PTA Advanced 1159 Structure of a Binary Tree C++

目录 题目 Input Specification: Output Specification: Sample Input: Sample Output: 思路 代码 题目 Suppose that all the keys in a binary tree are distinct positive integers. Given the postorder and inorder traversal sequences, a binary tree can be un…...

CDN绕过技术总汇

注 本文首发于合天网安实验室 首发链接&#xff1a;https://mp.weixin.qq.com/s/9oeUpFUZ_0FUu6YAhQGuAg 近日HVV培训以及面试&#xff0c;有人问了CDN该如何绕过找到目标真实IP&#xff0c;这向来是个老生常谈的问题&#xff0c;而且网上大多都有&#xff0c;但是有些不够全面…...

算法训练营DAY51|300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

本期是求子序列的新的一期&#xff0c;题目前两道有一些相似之处&#xff0c;思路差不多&#xff0c;第三道有一点难度&#xff0c;但并不意味着第一道没有难度&#xff0c;没有做过该类型题的选手&#xff0c;并不容易解出题解。 300. 最长递增子序列 - 力扣&#xff08;Leet…...

mac:彻底解决-安装应用后提示:无法打开“XXX”,因为无法验证开发者的问题;无法验证此App不包含恶意软件

mac从浏览器或其他电脑接收了应用&#xff0c;但是打开报错 目录报错解决办法一次性方法永久解决方法验证恢复应用验证报错 截图如下&#xff1a; 错误信息 无法打开“XXX”&#xff0c;因为无法验证开发者的问题&#xff1b;无法验证此App不包含恶意软件 解决办法 一次性方…...

基于MCP协议实现AI助手个性化:Terminal Buddies项目实战解析

1. 项目概述&#xff1a;当你的终端伙伴遇见AI助手 如果你和我一样&#xff0c;每天有大量时间泡在终端和代码编辑器里&#xff0c;那么一个能带来些许乐趣和陪伴感的“数字伙伴”或许能点亮枯燥的编码时光。Terminal Buddies 正是这样一个巧妙结合了复古 ASCII 艺术、轻量级游…...

MILCOM 2011技术风向:软件定义无线电、GaN与宽带测试的军用射频演进

1. 展会现场直击&#xff1a;MILCOM 2011的技术脉搏作为一名在射频微波和测试测量领域摸爬滚打了十几年的工程师&#xff0c;我对MILCOM&#xff08;军事通信会议&#xff09;这类展会总有一种特殊的感情。它不像那些消费电子展那样光鲜亮丽&#xff0c;人头攒动&#xff0c;但…...

JEB Pro 5.40 (macOS, Linux, Windows) - Android 反编译器和调试器

JEB Pro 5.40 (macOS, Linux, Windows) - 逆向工程平台 Reverse Engineering for Professionals. 请访问原文链接&#xff1a;https://sysin.org/blog/jeb/ 查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org JEB Decompiler JEB 是逆向工程…...

从日偏食图像处理开始:手把手在VS2019里跑通你的第一个OpenCV 4.3程序

从日偏食图像处理开始&#xff1a;手把手在VS2019里跑通你的第一个OpenCV 4.3程序 当那张日偏食照片第一次在屏幕上成功显示时&#xff0c;仿佛打开了计算机视觉的大门。本文将带你从零开始&#xff0c;用VS2019和OpenCV 4.3实现这个充满仪式感的"Hello World"——不…...

工程实践:AI 编程从提示词走向流水线,才需要 API 中转站

这类内容的核心判断应该换一下&#xff1a;用户不是先想买 API&#xff0c;中间才想到 Claude / Codex&#xff1b;很多时候正相反&#xff0c;是先想用 Claude / Codex 提升开发效率&#xff0c;才开始寻找稳定、可接入、可支付、可迁移的 API 入口。目标用户画像想把需求分析…...

FPGA上做图像压缩,别从零造轮子!聊聊DCT那些开源IP核与设计技巧

FPGA图像压缩实战&#xff1a;DCT开源IP核选型与架构优化指南 在嵌入式视觉系统开发中&#xff0c;JPEG图像压缩是FPGA工程师经常遇到的需求场景。当项目周期紧张且资源有限时&#xff0c;明智的开发者会优先考虑利用经过验证的开源IP核&#xff0c;而非从零开始实现离散余弦变…...

从寄存器到库函数:手把手拆解STM32的RCC时钟树(以F103C8T6为例)

从寄存器到库函数&#xff1a;手把手拆解STM32的RCC时钟树&#xff08;以F103C8T6为例&#xff09; 在嵌入式开发领域&#xff0c;STM32系列微控制器因其出色的性能和丰富的外设资源而广受欢迎。然而&#xff0c;对于许多开发者来说&#xff0c;STM32的时钟系统&#xff08;RCC…...

ArcGIS符号库“隐身”之谜:从DAO组件缺失到完整恢复的实战指南

1. 当符号选择器突然"罢工"&#xff1a;一个GISer的崩溃瞬间 那天早上我正赶着完成客户的地图项目&#xff0c;准备给水系图层换个漂亮的蓝色符号。像往常一样双击图层打开属性窗口&#xff0c;点击Symbol Selector准备挑选样式时&#xff0c;整个人瞬间僵住了——本…...

CANN/ge 图引擎资源释放

aclgrphBuildFinalize 【免费下载链接】ge GE&#xff08;Graph Engine&#xff09;是面向昇腾的图编译器和执行器&#xff0c;提供了计算图优化、多流并行、内存复用和模型下沉等技术手段&#xff0c;加速模型执行效率&#xff0c;减少模型内存占用。 GE 提供对 PyTorch、Tens…...

STM32H7 串口 DMA 双缓冲 空闲中断 实战解析 Hal库

1. STM32H7串口DMA双缓冲方案的必要性 在嵌入式系统中&#xff0c;串口通信是最基础也最常用的外设之一。传统的中断接收方式虽然简单直接&#xff0c;但在处理高速数据流时存在明显短板。每次接收到一个字节就触发一次中断&#xff0c;当波特率较高时&#xff08;比如115200甚…...