字符串和对象相互转换
对象转为字符串
//定义一个手机对象
let phone = {
name: "小米10",
color: '红色',
size: '1000*200*500',
price: '2999'
}
转成下面的字符串
"name=小米10&color=红色&size=1000*200*500&price=2999"
for in 循环,可以循环出对象里面的所有的key,(key就是属性名)
在ES6中新增了获取对象所有key的方法 -> ECMAScript2015 其实就是最新版本的javascript标准
Object.keys(指定的对象),该方法可以获取指定对象的所有key,返回值是一个数组
Object.values(指定的对象),该方法可以获取指定对象的所有的value,返回值是一个数组
方法一
let arr = []
for(let key in phone){
console.log(key);
arr.push(key+'='+phone[key]);
}
let str = arr.join('&')
console.log(str);
方法二
let keys = Object.keys(phone)
let arr2 = keys.map(function(k){
return k+'='+phone[k]
})
let str2 = arr2.join('&')
console.log(str2);
方法三
let str3 = Object.keys(phone).map(k=>[k,phone[k]].join('=')).join('&')
console.log(str3);
</script>
字符串转为对象
//定义一个字符串
let str = "name=小米10&color=红色&size=1000*200*500&price=2999"
//转成一个对象
/*let phone = {
name: "小米10",
color: '红色',
size: '1000*200*500',
price: '2999'
}*/
// 定义一个空对象
let obj = {}
str.split('&').forEach(item=>{
let arr = item.split('=')
obj[arr[0]] = arr[1]
})
console.log(obj);