假设 str 存储的是后端反馈给我们的一个信息 => 要求如下
var str = 'username=靓仔&age=18&qq=88888888'
需求1:
将
'username=靓仔&age=18&qq=88888888'
更改为
{
username: '靓仔',
age: 18,
qq: 88888888
}
需求2:
将
{
username: '靓仔',
age: 18,
qq: 88888888
}
更改为
'username=靓仔&age=18&qq=88888888'
代码实现
将字符串转换为对象
var str = 'username=靓仔&age=18&qq=88888888'
var arr = str.split('&'); // 通过split()方法将&两边的数据分隔开 以数组返回
var obj = {}; //定义一个空对象
// console.log(arr);
arr.forEach(function(item){
var arr1 = item.split('='); //将等号两边分隔开,形成三个新的数组
// console.log(arr1);
// 定义两个变量 key value存储对象的键和值
// var key = arr1[0];
// var value = arr1[1];
// obj[key] = value;
// 上面三段代码可缩写为 => obj[arr1[0]] = arr1[1];
obj[arr1[0]] = arr1[1]; // 索引0的值为对象的键 索引1的值为对象的值
})
console.log(obj);
将对象转换为字符串
var newStr = ''; //定义一个空字符串 用于存储对象转换后的字符串
for(var key in obj){ // 通过循环拿到对象中所有的索引下标
newStr += key + '=' + obj[key] + '&'; // 将键和值拼接成字符串
// 拿到的字符串 'username=靓仔&age=18&qq=88888888&' 要将最后一个&去掉
}
newStr = newStr.slice(0,newStr.length-1); // 通过字符串截取的方法将最后一个&去掉
console.log(newStr);