完成解決方案,當第一個參數(String 型別)以第二個參數結尾時(也是 String 型別)返回 true。
例子:solution('abc', 'bc') // returns true
solution('abc', 'd') // returns false
依據題意可整理出以下重點:
endsWith
方法,查找字串結尾是否有符合function solution(str, ending) {
return str.endsWith(ending)
}
endsWidth
使用 substring 方法
MDN 上有說明 substr 方法已被棄用,因此這邊改為使用功能類似的 substring 方法撰寫
透過此方法可以擷取出和比對字串相同長度的字串,再透過邏輯運算子做比對
function solution(str, ending) {
return str.substring(str.length-ending.length) === ending
}
使用 slice 方法
和上面的方法很像,較為不同的是,參數若為負值,會從字符串結尾開始計算
function solution(str, ending) {
let endIndex = ending.length ? -ending.length : str.length
return str.slice(endIndex) === ending
}
裡面有一個測試是 solution('abc', '')
,需要回傳 true。
因此加入了三元運算子做判斷,當 ending.length 為 0 時回傳 str.length(因為 0 會被轉型成 false);不等於 0 時就回傳負值的 ending 字串長度,前者會回傳空字串,後者則會從字符串結尾開始擷取字串。
今天就介紹到這裡,如果大家有更好的寫法歡迎一起來討論~