对象转字符串:
//定义一个手机对象
let phone = {
name: "小米10",
color: '红色',
size: '1000*200*500',
price: '2999'
}
// console.log(phone['name']);
// 对象转换字符串 "name=小米10&color=红色&size=1000*200*500&price=2999"
let keys = Object.keys(phone)
// console.log(keys); //['name', 'color', 'size', 'price']
let values = Object.values(phone)
// console.log(values); //['小米10', '红色', '1000*200*500', '2999']
let a = keys.map((e)=> {
console.log( [e,phone[e]]); //['name', '小米10'], ['color', '红色'], ['size', '1000*200*500'] ,['price', '2999']
let s= [e,phone[e]].join('=') //join根据= 拼接 把每个数组用=凭借起来变成字符串
console.log(s); //name=小米10, color=红色,size=1000*200*500,price=2999
return s //把s的内容返回出去 map()方法是根据规则返回一个新的数组 需要一个变量接收
})
//变量a接收到map()方法中s返回出去的新的数组 在用join把数组中的每个元素根据&拼接成字符串
let b = a.join('&') //a的内容 ['name=小米10', 'color=红色', 'size=1000*200*500', 'price=2999']
console.log(b);//name=小米10&color=红色&size=1000*200*500&price=2999
字符串转对象 :
//字符串转圜为对象 {name: '小米10', color: '红色', size: '1000*200*500', price: '2999'}
//转换成对象 首先定义一个空对象
obj = {}
//b 是一个字符串 字符串split()方法 一个字符串根据&分割为子字符串,然后将结果作为字符串数组返回
let c = b.split('&')
console.log(c); // ['name=小米10', 'color=红色', 'size=1000*200*500', 'price=2999']
c.forEach(e => {
console.log(e); //name=小米10 color=红色 size=1000*200*500 price=2999
let d = e.split('=') //同上 c是根据&分割好的子字符串返回的一个数组 用foreach循环 e是循环数组中每一项的内容 是一个串字符串 然后根据=分割 将字符串结果返回一个新的数组
console.log(d); //['name', '小米10'] ['color', '红色'] ['size', '1000*200*500'] ['price', '2999']
let key = d[0] //新数组的下标0 正好是对象的属性名 新数组的下标1 正好是对象的属性值
let value = d[1]
console.log(key, value); //name 小米10 ,color 红色 , size 1000*200*500, price 2999
//将属性名和属性值动态赋值给对象 动态赋值时Objcet[]=value
obj[key] = value
})
console.log(obj); //{name: '小米10', color: '红色', size: '1000*200*500', price: '2999'}