首頁 >web前端 >js教程 >js實作字串和陣列之間相互轉換操作_javascript技巧

js實作字串和陣列之間相互轉換操作_javascript技巧

WBOY
WBOY原創
2016-05-16 15:20:291223瀏覽

本文實例介紹了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); 

以上程式碼實現了我們的要求,使用"-"將數組元素連接了起來,並產生了一個字串。
上面的兩個例子都是使用的自帶的函數,當然我們也可以自己寫,這樣靈活性更大,並且知根知底。
三.自訂字串轉換為陣列

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 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()方法的定義與用法:
此方法可以給指定的陣列結尾追加一個或多個新的元素,並傳回陣列的長度。
註:新元素是直接追加到原有的數組,而不是建立新的數組。
點選可參閱數組更多屬性和方法。
語法結構:
arrayObject.push(元素一,元素二,....,元素N)

參數列表:
參數 描述
參數(一...N) 必需。要被追加的新元素。

實例碼:

var a = [1,2,3];
console.log(a.push("zhang","dao"));

2.indexOf()方法的定義與用法:
此方法傳回指定的字串在字串中首次出現的位置。
如果沒有檢索到對應的字串,回傳值是-1。
註:此方法對大小寫敏感。
語法結構:
stringObject.indexOf(substring,startindex)

實例碼:

var a=new String("abcdefg")
console.log(a.indexOf("b"));

b在字串abcdefg中第二個出現。輸出結果:1。

var a=new String("abcdefg")
console.log(a.indexOf("B"));

此方法對大小寫敏感的,所以字串abcdefg中並沒有大寫的B出現。輸出結果:-1。

var a=new String("abcdefg")
console.log(a.indexOf("e",4));

檢索開始的位置是4,字串首次出現的位置還是從字串的起始開始計算的。輸出結果:4。

 3.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 4.f(arr!=""){}如果陣列元素不為空。
5.if(strTmp=="") {strTmp=arr;},如果字串中也為空,那麼就將陣列中的此元素賦值給字串strTmp。
6.else{strTmp=strTmp+str+arr},否則進行字串連接。
7.return strTmp,傳回轉換後的字串。

以上就是js實作字串和陣列之間互相轉換的詳細程式碼,希望對大家的學習有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn