JS之字符串与对象之间的转换
2019-12-23 本文已影响0人
鲁女女
对象转字符串
题目是 :
提供一个用户的数据:
{username:"xiaowang",password:"12345",sex:"nv",age:19,on:"yes"}
提供一个网址:http://www.baidu.com
把数据以查询字符串的格式,拼接到网址后,得到的结果是:
http://www.baidu.com? username=xiaowang&password=12345&sex=nv&age=19&on=yes
// ------------------方法1
var url = "http://www.baidu.com";
var userData = {username:"xiaowang",password:"12345",sex:"nv",age:19,on:"yes"};
var str = "";
for ( var i in userData ){
str += (i + "=" + userData[i] + "&");
}
var newstr = str.substring(0,str.length-1); //这里是截取字符串,主要目的在于去除最后的&符号
var finallyStr = url + "?" + newstr;
console.log(finallyStr);
//------------------方法2
var url = "http://www.baidu.com";
var userData = {username:"xiaowang",password:"12345",sex:"nv",age:19,on:"yes"};
var str = "";
// 第一个目标:["username=xiaowang", "password=12345", "sex=nv", "age=19", "on=yes"]
var arr = [];
for ( var i in userData ){
arr.push(i + "=" + userData[i]);
}
console.log(arr);
//把数组的间隔以&形式隔开
var newStr = arr.join("&");
console.log(newStr);
var finallyStr = url + "?" + newStr;
console.log(finallyStr);
字符串转对象
题目是:
提供一个网址:
http://www.baidu.com?username=xiaowang&password=12345&sex=nv&age=19&on=yes
将网址的查询内容获取到,并用对象展示出来:
{username:"xiaowang",password:"12345",sex:"nv",age:19,on:"yes"}
var str = "http://www.baidu.com?username=xiaowang&password=12345&sex=nv&age=19&on=yes";
var finallyObj = {};
//1.截取到查询的内容(?以后的内容)
var strArr = str.split("?");
console.log(strArr);//["http://www.baidu.com", "username=xiaowang&password=12345&sex=nv&age=19&on=yes"]
var strSearch = strArr[1];//username=xiaowang&password=12345&sex=nv&age=19&on=yes;
//拿到查询结果,再次以&符号分割成一个数组,每一个键值对就是数组的其中一个值
var str2Arr = strSearch.split("&");
console.log(str2Arr);// ["username=xiaowang", "password=12345", "sex=nv", "age=19", "on=yes"]
//遍历新得到的数组,然后把每一个值的键值对放在对象中
str2Arr.forEach(function (item) {
var newArr = item.split("=");
finallyObj[newArr[0]] = newArr[1];
})
console.log(finallyObj);
//-----------------------以上可简写为以下方式
var str = "http://www.baidu.com?username=xiaowang&password=12345&sex=nv&age=19&on=yes";
var finallyObj = {};
str.split("?")[1].split("&").forEach(function (item) {
finallyObj[item.split("=")[0]] = item.split("=")[1]
});
console.log(finallyObj);