最近看了一個JS的面試題,是這樣描述的:利用var s1=prompt("請輸入任意的字串","")可以取得使用者輸入
的字串,試編程將使用者輸入的字串“反轉”,並且將字串輸出。
想了一下,字串物件的方法中並沒有實現反轉的,但是陣列中有,於是考慮了字串和陣列的相互轉換問題。
JS中的內建物件中包含字串物件(String)和陣列物件(Array),這兩個物件是可以透過它們物件的方法來實現相互
轉化的。對於String對象,提供了對字串進行操作的屬性和方法;對於Array對象,提供了數組操作方面的屬性和方
法。因此我們要實現上面的面試題目就容易了。
一、字串轉換為陣列
String物件中的split()方法
上述方法的功能是:將字串切成若干段,並傳回一個陣列。也就是說,可以將一個字串轉成數值。如:
strObj.split(分割號),參數是一個分割號的字串,用指定的分割號將字串切成若干段。
實例:
//要求输出今天是星期几 //定义一个星期字符串 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]);
輸出的結果是:型別是:object,陣列的第一個元素是:星期日
為「星期五
二、陣列轉換為字串和陣列元素實現反轉
Array物件的join()方法
上述方法的功能是:將一個陣列轉成字串。如:arrObj.join(連接號),將一個陣列用指定的連接號連結成一個字
符串。
例:
var arr=["a","b","c"]; var str=arr.join("-"); document.write("类型是:"+typeof(str)+",字符串是:"+str);
輸出的結果是:型別是:string,字串是:a-b-c
Array物件的reverse()方法
上述方法的功能是:將陣列中各元素顛倒順序。如:arrObj.reverse()。
例:
var arr=["a","b","c"]; arr.reverse(); document.write(arr);
輸出的結果是:c,b,a
最後我們來看面試題的實現代碼:
/* 利用var s1=prompt("请输入任意的字符串","")可以获取用户输入 的字符串,试编程将用户输入的字符串“反转”,并且将字符串输出。 */ //接受字符串 var s1=prompt("请输入任意的字符串",""); //字符串转换为数组 var arr=s1.split(""); //利用数组对象的reverse()方法实现反转 arr.reverse(); //利用数组的join()方法转换为字符串 var str=arr.join(""); document.write(str);
實現的結果:
以上就是本文的全部內容,希望對大家的學習有所幫助。