字符串截取和字符串转对象
代码讲解
let href = "http://www.baidu.com?name=zs&age=18&sex=男";
//截取域名 http://www.baidu.com
console.log(href.split('?')[0]);
//代码拆分讲解
let arr=href.split('?')//转换成数组并把?从数组中删掉,并把两边分开为两个
arr[0]//上面已经把字符串拆分转为数组,并分成两个所以arr[0]就是"http://www.baidu.com
//获取问号后面的参数 name=zs&age=18&sex=男 并且转成对象 {name:'zs',age:18,sex:'男'}
const paramsStr = href.split('?')[1] // name=zs&age=18&sex=男
const paramsArr = paramsStr.split('&') // ['name=zs', 'age=18', 'sex=男']
let obj = {}
paramsArr.forEach(it=>{
obj[it.split('=')[0]]=it.split('=')[1]
})
//代码拆分讲解
href.split('?')[1]//跟上面一个原理
const paramsArr = paramsStr.split('&')//同样是转换成数组把&删掉,然后&两边的元素分开
let obj = {}
paramsArr.forEach(it=>{ //循环paramsArr这个数组,
//数组里面的内容是['name=zs', 'age=18', 'sex=男']
obj[it.split('=')[0]]=it.split('=')[1]
//第一次循环进来的paramsArr[0]内容是'name=zs'
//进来后用spilt删掉=号然后拆分成['name','zs']
//所以it.split('=')[0]就等于name,it.split('=')[1]等于zs
})