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);

上一篇下一篇

猜你喜欢

热点阅读