One minute
JavaScript 語法筆記:顛倒字串 split()、reverse()、join()
一開始學習 JavaScript 的語法時,總會不知道要在什麼情況下使用。在課程中雖然都懂得如何運用,但如果沒有真正融會貫通,下次碰到題目時也不知道原來有這些方法可以用。這次藉由「顛倒字串」這個題目,也就是當我輸入 “Apple” 時,電腦要回應我 “elppA” ,來加強之前學到的陣列及字串處理語法。這邊介紹可以達成這道題目的兩種方法:
1. 使用 split()、reverse()、join()
首先,先來認識這些語法的使用方式。每一個語法名稱的第一個單字代表他是處理什麼的意思。String 就是處理字串的語法;而 Array 就是處理陣列的語法。使用上要注意不要將用在陣列的語法放到字串上囉!
String.prototype.split()
split() 可以將字串轉為陣列,在 () 中以一個指定的分割方式來決定分割的位置。例如,在括號的引號 ’’ 中沒有輸入任何字符(包括空格),就會以「每一個字串每一個字串」的陣列回傳。
const splitted = "Apple is very delicious".split('')
console.log(splitted)
// [
'A', 'p', 'p', 'l', 'e',
' ', 'i', 's', ' ', 'v',
'e', 'r', 'y', ' ', 'd',
'e', 'l', 'i', 'c', 'i',
'o', 'u', 's'
]
那如果在引號中加入空格呢?
const splitted = "Apple is very delicious".split(' ')
console.log(splitted) // [ 'Apple', 'is', 'very', 'delicious' ]
神奇的事發生了!JavaScript 引擎會幫我們用空格來當分割點,回傳給我們一個一個的單字陣列。
Array.prototype.reverse()
顧名思義就是將陣列反轉,最後一個元素變成第一個。讓我們用剛剛的例子來看看:
const splitted = "Apple is very delicious".split(' ').reverse()
console.log(splitted) // [ 'delicious', 'very', 'is', 'Apple' ]
如果只有一個單字的時候,記得在 split(’’) 的引號中不要放入空格喔,這樣才能將每一個字母倒轉。
const splitted = "Apple".split('').reverse()
console.log(splitted) // [ 'e', 'l', 'p', 'p', 'A' ]
是不是越來越接近我們要的感覺了?
Array.prototype.join()
與 split() 相反,join() 能將陣列轉成字串。而括號內的規則也是相同的。來看看例子吧:
const splitted = "Apple".split('').reverse().join('')
console.log(splitted) // elppA
我們成功完成題目了,把它寫成一個可以一直使用的函式吧。
function reverseString(str) {
return str.split('').reverse().join('')
}
句子也可以使用喔,自己試試看吧!
2. 使用 for 迴圈
第二種方式就簡單多了,用 for 迴圈讓它倒著跑回去就可以。
function reverseString(str) {
let reversed = ''
for (let i = str.length -1; i >= 0; i--){
reversed += str[i]
}
return reversed
}
結語
一道看起來不怎麼起眼的題目也可以學到很多,尤其是陣列與字串互相轉換的語法在實作上會滿常使用到的。至於把字串顛倒要用在什麼情況呢?總會有那個時候的吧 😂