js實(shí)現(xiàn)字符串和數(shù)組之間相互轉(zhuǎn)換操作
本文實(shí)例介紹了javascript中字符串和數(shù)組的相互轉(zhuǎn)換方法,分享給大家供大家參考,具體內(nèi)容如下
字符串和數(shù)組的相互轉(zhuǎn)換操作是非常的重要的,因?yàn)樵趯?shí)際編碼過程中會(huì)經(jīng)常用到,所以這是必須要掌握的知識(shí)點(diǎn),當(dāng)然這個(gè)知識(shí)點(diǎn)并不難,知道了就永遠(yuǎn)知道了,并不是那種需要充分實(shí)踐才能夠掌握的東西,下面就做一下簡(jiǎn)單的介紹。
一.字符串轉(zhuǎn)換為數(shù)組
此操作會(huì)用到split()函數(shù),它能夠以指定的字符作為分隔符,將字符串轉(zhuǎn)換成一個(gè)數(shù)組,實(shí)例代碼如下:
var Str="abc-mng-zhang-mayi"; var newArray=Str.split("-"); console.log(newArray);
由輸出的結(jié)果可以看出,split()函數(shù)已經(jīng)將字符串轉(zhuǎn)換成一個(gè)數(shù)組。
二.將數(shù)組轉(zhuǎn)換為字符串
此操作可以使用Array對(duì)象的join()函數(shù)來實(shí)現(xiàn),此函數(shù)可以將數(shù)組中的元素以指定的字符連接起來,然后返回產(chǎn)生的字符串。
代碼如下:
var newArray=["abc","mng","zhang","mayi"]; var Str=newArray.join("-"); console.log(Str);
以上代碼實(shí)現(xiàn)了我們的要求,使用"-"將數(shù)組元素連接了起來,并生成了一個(gè)字符串。
上面的兩個(gè)例子都是使用的自帶的函數(shù),當(dāng)然我們也可以自己寫,這樣靈活性更大,并且知根知底。
三.自定義字符串轉(zhuǎn)換為數(shù)組
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);
以上代碼同樣實(shí)現(xiàn)了將字符串轉(zhuǎn)換為數(shù)組的功能,下面對(duì)代碼進(jìn)行一下注釋:
代碼注釋:
1.function StringToArray(str,substr){},此函數(shù)用來進(jìn)行轉(zhuǎn)化,str是要被轉(zhuǎn)換的字符串,substr是分隔符。
2. var arrTmp=new Array(),聲明一個(gè)數(shù)組,用來存放分割的字符串片段。
3.if(substr=="") {arrTmp.push(str);return arrTmp;},如果字符串分隔符為空,那么就將整個(gè)字符串放入數(shù)組。
4. var i=0,j=0,k=str.length;聲明三個(gè)變量,并賦初值,k的值是字符串中字符的個(gè)數(shù)。
5.while(i<k){},一個(gè)while循環(huán)語句,執(zhí)行的條件是i的值小于k也就是小于字符串中字符的個(gè)數(shù)。
6.j=str.indexOf(substr,i),用來檢測(cè)分隔符在字符串出現(xiàn)的位置,如果indexOf()函數(shù)帶有兩個(gè)參數(shù)的,第二個(gè)參數(shù)是查找指定字符開始的位置,這段代碼要結(jié)合下面的代碼理解。
7.if(j!=-1),如果查找的分隔符存在。
8.if(str.substring(i,j)!=""){},截取從開始查找位置到查找到第一個(gè)分隔符之間的字符串。
9.arrTmp.push(str.substring(i,j));,將截取的字符串放入數(shù)組。
10.i=j+1;將開始查找的位置設(shè)置為分隔符的下一個(gè)字符。
11.else{},如果沒有查找。
12.if(str.substring(i,k)!=""){arrTmp.push(str.substring(i,k));},如果最后一個(gè)分隔符之后的字符不為空,那么就添加到數(shù)組。
13.i=k,將i設(shè)置為k,這樣循環(huán)就停止了。
14.return arrTmp; 返回?cái)?shù)組。
相關(guān)知識(shí):
1.push()方法的定義和用法:
此方法可以給指定的數(shù)組末尾追加一個(gè)或者多個(gè)新的元素,并返回?cái)?shù)組的長(zhǎng)度。
注:新元素是直接追加到原有的數(shù)組,而不是創(chuàng)建新的數(shù)組。
點(diǎn)擊可參閱數(shù)組更多屬性和方法。
語法結(jié)構(gòu):
arrayObject.push(元素一,元素二,....,元素N)
參數(shù)列表:
參數(shù) 描述
參數(shù)(一...N) 必需。要被追加的新元素。
實(shí)例代碼:
var a = [1,2,3]; console.log(a.push("zhang","dao"));
2.indexOf()方法的定義和用法:
此方法返回指定的字符串在字符串中首次出現(xiàn)的位置。
如果沒有檢索到相應(yīng)的字符串,返回值是-1。
注:此方法對(duì)大小寫敏感。
語法結(jié)構(gòu):
stringObject.indexOf(substring,startindex)
實(shí)例代碼:
var a=new String("abcdefg") console.log(a.indexOf("b"));
b在字符串a(chǎn)bcdefg中第二個(gè)出現(xiàn)。輸出結(jié)果:1。
var a=new String("abcdefg") console.log(a.indexOf("B"));
此方法對(duì)大小寫敏感的,所以字符串a(chǎn)bcdefg中并沒有大寫的B出現(xiàn)。輸出結(jié)果:-1。
var a=new String("abcdefg") console.log(a.indexOf("e",4));
檢索開始的位置是4,字符串首次出現(xiàn)的位置還是從字符串的起始開始計(jì)算的。輸出結(jié)果:4。
3.substring()函數(shù)。
四.自定義數(shù)組轉(zhuǎn)換為字符串
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,"-"));
以上代碼實(shí)現(xiàn)了我們的要求,可以將數(shù)組轉(zhuǎn)換為字符串,下面對(duì)代碼進(jìn)行一下注釋:
代碼注釋:
1.function ArrayToString(arr,str){},第一個(gè)參數(shù)是數(shù)組,第二個(gè)參數(shù)是連接字符串。
2.var strTmp="",聲明一個(gè)空字符串。
3.for(var i=0;i<arr.length;i++) {},遍歷數(shù)組中的每一個(gè)元素。
4.f(arr!=""){}如果數(shù)組元素不為空。
5.if(strTmp=="") {strTmp=arr;},如果字符串中也為空,那么就將數(shù)組中的此元素賦值給字符串strTmp。
6.else{strTmp=strTmp+str+arr},否則進(jìn)行字符串連接。
7.return strTmp,返回轉(zhuǎn)換后的字符串。
以上就是js實(shí)現(xiàn)字符串和數(shù)組之間相互轉(zhuǎn)換的詳細(xì)代碼,希望對(duì)大家的學(xué)習(xí)有所幫助。
- JS字符串和數(shù)組如何實(shí)現(xiàn)相互轉(zhuǎn)化
- Go 結(jié)構(gòu)體、數(shù)組、字典和 json 字符串的相互轉(zhuǎn)換方法
- javascript實(shí)現(xiàn)的字符串轉(zhuǎn)換成數(shù)組操作示例
- JS實(shí)現(xiàn)將二維數(shù)組轉(zhuǎn)為json格式字符串操作示例
- javascript中json對(duì)象json數(shù)組json字符串互轉(zhuǎn)及取值方法
- js中實(shí)現(xiàn)字符串和數(shù)組的相互轉(zhuǎn)化詳解
- js數(shù)組與字符串的相互轉(zhuǎn)換方法
- JS數(shù)組轉(zhuǎn)字符串實(shí)現(xiàn)方法解析
相關(guān)文章
javascript運(yùn)動(dòng)效果實(shí)例總結(jié)(放大縮小、滑動(dòng)淡入、滾動(dòng))
這篇文章主要介紹了javascript運(yùn)動(dòng)效果,結(jié)合實(shí)例形式總結(jié)分析JavaScript實(shí)現(xiàn)放大縮小、滑動(dòng)淡入、滾動(dòng)等效果的方法,需要的朋友可以參考下2016-01-01淺析Virtual DOM的概念與其在現(xiàn)代前端框架中的實(shí)踐
這篇文章將深入探討Virtual DOM(虛擬DOM)的概念,分析其對(duì)前端開發(fā)的革新影響,并以此展示前端技術(shù)的深度和魅力,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12js確認(rèn)框confirm()用法實(shí)例詳解
這篇文章主要針對(duì)js確認(rèn)框confirm()用法進(jìn)行實(shí)例講解,介紹了javascript確認(rèn)框的三種使用方法,感興趣的小伙伴們可以參考一下2016-01-01獲取URL地址中的文件名和參數(shù)的javascript代碼
JS 獲取URL地址中的文件名和參數(shù),這個(gè)版本中有詳細(xì)的注釋。2009-09-09基于JS實(shí)現(xiàn)前端壓縮上傳圖片的實(shí)例代碼
這篇文章主要介紹了基于JS實(shí)現(xiàn)前端壓縮上傳圖片的實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-05-05探究Javascript模板引擎mustache.js使用方法
這篇文章主要為大家介紹了Javascript模板引擎mustache.js使用方法,mustache.js是一個(gè)簡(jiǎn)單強(qiáng)大的Javascript模板引擎,使用它可以簡(jiǎn)化在js代碼中的html編寫,壓縮后只有9KB,非常值得在項(xiàng)目中使用,感興趣的小伙伴們可以參考一下2016-01-01