javascript中字元串和數組的相互轉換:字元串和數組的相互轉換操作是非常的重要的,因為在實際編碼過程中會經常用到,所以這是必須要掌握的知識點,當然這個知識點並不難,知道了就永遠知道了,並不是那種需要充分實踐才能夠掌握的東西,下麵就做一下簡單的介紹。一.字元串轉換為數組:此操作會用到split(...
javascript中字元串和數組的相互轉換:
字元串和數組的相互轉換操作是非常的重要的,因為在實際編碼過程中會經常用到,所以這是必須要掌握的知識點,當然這個知識點並不難,知道了就永遠知道了,並不是那種需要充分實踐才能夠掌握的東西,下麵就做一下簡單的介紹。
一.字元串轉換為數組:
此操作會用到split()函數,它能夠以指定的字元作為分隔符,將字元串轉換成一個數組,實例代碼如下:
var Str="abc-mng-zhang-mayi"; var newArray=Str.split("-"); console.log(newArray);
由輸出的結果可以看出,split()函數已經將字元串轉換成一個數組。
二.將數組轉換為字元串:
此操作可以使用Array對象的join()函數來實現,此函數可以將數組中的元素以指定的字元連接起來,然後返回產生的字元串。
代碼如下:
var newArray=["abc","mng","zhang","mayi"]; var Str=newArray.join("-"); console.log(Str);
以上代碼實現了我們的要求,使用"-"將數組元素連接了起來,並生成了一個字元串。
split()函數可以參閱JavaScript的String對象的split()方法一章節。
join()函數可以參閱javascript的Array對象的join()方法一章節。
上面的兩個例子都是使用的自帶的函數,當然我們也可以自己寫,這樣靈活性更大,並且知根知底。
三.自定義字元串轉換為數組:
function StringToArray(str,substr) { var arrTmp=new Array(); if(substr=="") { arrTmp.push(str); return arrTmp; } var i=0,j=0,k=str.length; while(i<k) { j=str.indexOf(substr,i); if(j!=-1) { if(str.substring(i,j)!="") { arrTmp.push(str.substring(i,j)); } i = j+1; } else { if(str.substring(i,k)!="") { arrTmp.push(str.substring(i,k)); } i=k; } } return arrTmp; } var Str="abc-mng-zhang-mayi"; console.log(StringToArray(Str,"-")); console.log(StringToArray(Str,"-").length);
以上代碼同樣實現了將字元串轉換為數組的功能,下麵對代碼進行一下註釋:
代碼註釋:
1.function StringToArray(str,substr){},此函數用來進行轉化,str是要被轉換的字元串,substr是分隔符。
2. var arrTmp=new Array(),聲明一個數組,用來存放分割的字元串片段。
3.if(substr=="") {arrTmp.push(str);return arrTmp;},如果字元串分隔符為空,那麼就將整個字元串放入數組。
4. var i=0,j=0,k=str.length;聲明三個變數,並賦初值,k的值是字元串中字元的個數。
5.while(i<k){},一個while迴圈語句,執行的條件是i的值小於k也就是小於字元串中字元的個數。
6.j=str.indexOf(substr,i),用來檢測分隔符在字元串出現的位置,如果indexOf()函數帶有兩個參數的,第二個參數是查找指定字元開始的位置,這段代碼要結合下麵的代碼理解。
7.if(j!=-1),如果查找的分隔符存在。
8.if(str.substring(i,j)!=""){},截取從開始查找位置到查找到第一個分隔符之間的字元串。
9.arrTmp.push(str.substring(i,j));,將截取的字元串放入數組。
10.i=j+1;將開始查找的位置設置為分隔符的下一個字元。
11.else{},如果沒有查找。
12.if(str.substring(i,k)!=""){arrTmp.push(str.substring(i,k));},如果最後一個分隔符之後的字元不為空,那麼就添加到數組。
13.i=k,將i設置為k,這樣迴圈就停止了。
14.return arrTmp; 返回數組。
相關閱讀:
1.push()函數可以參閱javascript的Array對象的push()方法一章節。
2.indexOf()函數可以參閱javascript的String對象的indexOf()方法一章節。
3.substring()函數可以參閱javascript的String對象的substring()方法一章節。
四.自定義數組轉換為字元串:
function ArrayToString(arr,str) { var strTmp=""; for(var i=0;i<arr.length;i++) { if(arr[i]!="") { if(strTmp=="") { strTmp = arr[i]; } else { strTmp=strTmp+str+arr[i]; } } } return strTmp; } var newArray=["abc","mng","zhang","mayi"]; console.log(ArrayToString(newArray,"-"));
以上代碼實現了我們的要求,可以將數組轉換為字元串,下麵對代碼進行一下註釋:
代碼註釋:
1.function ArrayToString(arr,str){},第一個參數是數組,第二個參數是連接字元串。
2.var strTmp="",聲明一個空字元串。
3.for(var i=0;i<arr.length;i++) {},遍曆數組中的每一個元素。
4.f(arr!=""){}如果數組元素不為空。
5.if(strTmp=="") {strTmp=arr;},如果字元串中也為空,那麼就將數組中的此元素賦值給字元串strTmp。
6.else{strTmp=strTmp+str+arr},否則進行字元串連接。
7.return strTmp,返迴轉換後的字元串。
原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=9405
更多內容可以參閱:http://www.softwhy.com/javascript/