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 就等於 后面那一坨