欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JavaScript获取链接url参数并生成对象

程序员文章站 2024-02-17 22:46:34
...

日常每次在获取URL上的参数都得写一遍 location.search
接着xxxx一顿分割字符串
想做个一劳永逸的东东,所以写了一个迷你URL的解析工具
?aaa  这种解析后可以变成{aaa: "onlyKey"}     //onlyKey可以作为判断,这个是只有key的意思,(啊哈哈哈哈哈)
?bbb=123456  这种解析后可以变成{bbb: "123456"}
想要的就是它了

然后我打算折磨它,先循环1万次,结果是45毫秒

感觉没啥压力

于是直接循环100万次

结果是2294毫秒,感觉挺爽,大家可以用用看

function getUrlQuery() {
	var urlStr = location.search.substr(1) ? location.search.substr(1) : "";
	var urlArr = [];
	for(var i = 0; i < urlStr.split("&").length; i++) {
		urlArr.push(urlStr.split("&")[i].split("=")[0] ? urlStr.split("&")[i].split("=")[0] : "");
		urlArr.push(urlStr.split("&")[i].split("=")[1] ? urlStr.split("&")[i].split("=")[1] : "onlyKey")
	}
	if(urlStr == "") {
		return;
	} else {
		var urlObj = {}
		for(var i = 0; i < urlArr.length; i += 2) {
			if(urlArr[i] != "") {
				urlObj[urlArr[i]] = decodeURIComponent(urlArr[i + 1]);
			}
		}
		return urlObj;
	}
}