1. 程式人生 > >JS中實現字串和陣列的相互轉化

JS中實現字串和陣列的相互轉化

        早上起來看了一道JS的面試題,是這樣描述的:利用var s1=prompt("請輸入任意的字串","")可以獲取使用者輸入

的字串,試程式設計將使用者輸入的字串“反轉”,並且將字串輸出。

想了一下,字串物件的方法中並沒有實現反轉的,但是陣列中有,於是考慮了字串和陣列的相互轉換問題。

        JS中的內建物件中包括字串物件(String)和陣列物件(Array),這兩個物件是可以通過它們物件的方法實現相互

轉化的。對於String物件,提供了對字串進行操作的屬性和方法;對於Array物件,提供了陣列操作方面的屬性和方

法。因此我們實現上面的面試題就容易了。

       一首先來看字串轉化為陣列

       String物件中的split()方法

       上述方法的功能是:將一個字串切割成若干段,返回一個數組。也就是說,可以將一個字串轉成數值。如:

strObj.split(分割號),引數是一個分割號的字串,用指定的分割號將字串切成若干段。

       例項:

<span style="font-size:18px;">//要求輸出今天是星期幾
//定義一個星期字串
var str="星期日,星期一,星期二,星期三,星期四,星期五,星期六";
//建立一個日期物件
var today=new Date();
//使用today物件的getDay()方法
var week=today.getDay();
//將星期字串分割成一個數組
var arr=str.split(",");
document.write("型別是:"+typeof(arr)+",陣列的第一個元素是:"+arr[0]+"<br />");
//輸出結果
document.write("今天是:"+arr[week]);</span>

       輸出的結果是:型別是:object,陣列的第一個元素是:星期日

                  今天是:星期五

       二再來看陣列轉換為字串和陣列元素實現反轉

       Array物件的join()方法

       上述方法的功能是:將一個數組轉成字串。如:arrObj.join(連線號),將一個數組用指定的連線號連結成一個字

符串。

       例項:

<span style="font-size:18px;">var arr=["a","b","c"];
var str=arr.join("-");
document.write("型別是:"+typeof(str)+",字串是:"+str);</span>

       輸出的結果是:型別是:string,字串是:a-b-c

       Array物件的reverse()方法

       上述方法的功能是:將陣列中各元素顛倒順序。如:arrObj.reverse()。

       例項:

<span style="font-size:18px;">var arr=["a","b","c"];
arr.reverse();
document.write(arr);</span>
       輸出的結果是:c,b,a

       三最後我們來看面試題的實現程式碼:

<span style="font-size:18px;">/*
  利用var s1=prompt("請輸入任意的字串","")可以獲取使用者輸入
  的字串,試程式設計將使用者輸入的字串“反轉”,並且將字串輸出。
*/
//接受字串
var s1=prompt("請輸入任意的字串","");
//字串轉換為陣列
var arr=s1.split("");
//利用陣列物件的reverse()方法實現反轉
arr.reverse();
//利用陣列的join()方法轉換為字串
var str=arr.join("");
document.write(str);</span>
         實現的結果: