将json数据拼接到url中

这个问题是昨天百度一面的问题,想法倒是有,但是代码写出来就有些费劲,其实当场觉得这个代码应该很好写(毕竟思想是有的),但是今天尝试了一下去写代码,还是有一点点的问题,下面分享一下解决这个问题的两个代码片段

1、硬写法(哈哈哈)

var url = '//www.jb51.net:80/seo/?'; 
		var data = { //一个json数据
			'a':1,
			'b':2,
			'c':3
		};
		var arr = JSON.stringify(data); //将json数据转换为字符串格式
		var len = arr.length; //获取字符串长度
		var data1 = arr.substring(1,len-1); //截取字符串中不包括‘{}’部分
		var data2 = data1.split(','); //以','分割字符串
		var jsonArr = []; //创建一个新数组
		for(var i=0;i<data2.length;i++){
			str2 = data2[i].replace(/\"/g, ""); //去掉data2数据中每一项的""
			var str3 = str2.replace(/:/,'='); //将str2数据中的每一项中':'替换为'='
			jsonArr.push(str3); //将str3数据存入数组里面
		}		
		var result = url+jsonArr.join('&'); //将两个数据拼接起来
		console.log(result); 

2、函数法(这个法起名就比较正经)

function addURLParam(url,name,value){ //3个参数,要添加参数的url,参数的名称,参数的值
			url += (url.indexOf("?")==-1?"?":"&"); //判断url中是否有'?'
			url += encodeURIComponent(name)+"="+encodeURIComponent(value); //拼接
			return url; 
		}
		var url = "example.php"; 
		url = addURLParam(url,"name1","1"); //传参
		url = addURLParam(url,"name2","2"); //传参
 		console.log(url);

3、函数法--只添加一次(来吧,继续正经的起名)

function addURLParam(url,name,value){ //3个参数,要添加参数的url,参数的名称,参数的值
			url += (url.indexOf("?")==-1?"?":"&"); //判断url中是否有'?'
			url += encodeURIComponent(name)+"="+encodeURIComponent(value); //拼接
			return url; 
		}
		var url = "example.php"; 
		var json = {
			'name':111,
			'value':222,
			'key':333
		};
		for(var key in json){  
			url = addURLParam(url,key,json[key]); //传参
		}  
 	    console.log(url);

写一个百度面试小结吧,在这之前我一直觉得我只要有思想就够了,代码什么的就会自然而然的写出来,然而不是这样的,必须有思维方式然后再经过数不清的实战次数才可以吧,也很可惜没能听到更多的面试题,在很简单的问题上却因为代码“栽了跟头”,继续努力吧

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值