js实现对象-数组-字符串之间的相互转化
对象-数组-字符串:
例如: var data = { user:”userName”, pass:”12121” };//这是一个对象 如果要给这个data 对象追加一个属性就比如: new Date( ).getTime( );//获取当前时间到那个时间的时间间隔单位是毫秒; data.time = new Date( ).getTime( ); 此时data 里面就多了一个属性: time : “ 获取到的那个毫秒数" 即: var data = { user:”userName”, pass:”12121”, time:"获取的时间数值" }; 1: 对象转化为数组: var arr = [ ]; for ( var i in data ){ var str = i + “=“ + data[ i ]// i 就代表 data 里面的 user pass 等等 而data[ i ] 就代表 userName 12121 就是 i 所对应的值; arr.push( str ); } 这样就会得到 arr = [ user = userName, pass = 12121 ]; 2:数组转化为字符串: 两种方法: 1:arr.join( “&”)//意思是用&f符代替“ , ”然后把数组变成字符串连接; 这时候 arr 里面的内容就是 user = tangcaiye&pass = 12121 2: 比如: var arr = [1,2]; var str = JSON.stringify(arr);//这样也能转化为字符串但现在还是数组的形式不过类型已经是字符串了; var arr2 = JSON.parse(str);//这样就是把字符串解析 其实就是把外面的中括号去掉; 前后台交互的: 后台接收的时候只能接收字符串类型的; 如果前台要传递一个数组就必须先把数组进行stringify( )的操作再进行传递; 而后台返回给前台的也是字符串简称json串;这时需要解析一下就需要 JSON.parse( );操作完了再用; 3:字符串转化为数组: 例如: 有个这样的 : url = “login.php?user=“+user.value+”&pass=“+pass.value; 那我想要得到login.php就是这样写:var urlArr = url.split(“?”); 上面那个意思就是以?为分割点把这个字符串劈开变成一个数组的两部分; 那么 aa = urlArr[0];此时 aa 就等于 login.php; bb = urlArr[1];此时bb 就等于 后面那一坨;// ES6标签模板。
ui.innerHTML= `
<ul>
#for book in
<li><i>oooo</i> by autor</li>
#end
</ul>`;
function rangeo(a) {
console.log(`${a}is da hao ren`) // es6语法
}
rangeo("zhangjing");
var obj={
name:'zhangjng',
score:{math:90,english:100},
address:"成都市"
}
console.log(obj)
for(var index in obj){
console.log(obj[index])
};
var aList=['zhang',90,'zha']
for( var a of aList){
console.log(a)
}
// for of 无法遍历对象,对象用for in遍历