美文网首页
JS之字符串与对象之间的转换

JS之字符串与对象之间的转换

作者: 鲁女女 | 来源:发表于2019-12-23 19:53 被阅读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);
    
    

    相关文章

      网友评论

          本文标题:JS之字符串与对象之间的转换

          本文链接:https://www.haomeiwen.com/subject/nsdtoctx.html