#10 Codewars - String ends with? (7 kyu)

閱讀時間約 3 分鐘

題目

原始題目

完成解決方案,當第一個參數(String 型別)以第二個參數結尾時(也是 String 型別)返回 true。

例子:
solution('abc', 'bc') // returns true
solution('abc', 'd') // returns false

拆解流程

依據題意可整理出以下重點:

  • 目標:比對第一個參數結尾是否等同於第二個參數
  • 規則:參數傳入的都是字串型別
  • 方法:使用 endsWith 方法,查找字串結尾是否有符合

程式撰寫

function solution(str, ending) {
return str.endsWith(ending)
}

endsWidth

  • 回傳:Boolean
  • 此方法可傳入兩個參數:第一個參數是要比對的字串;第二個參數是從哪個結尾位置開始比對,可不傳入,預設為 str.length
  • 注意:第一個參數不能傳入正規表達式,會回傳 TypeError

改善寫法

使用 substring 方法

MDN 上有說明 substr 方法已被棄用,因此這邊改為使用功能類似的 substring 方法撰寫

  • 功能:擷取出指定字串
  • 需要傳入兩個參數:第一個是起始索引,第二個是結束索引,擷取出的字串並「不包括」結束索引
  • 回傳:字串型別,擷取出的新字串
  • 參數規則:
  1. 若未寫入第二個參數,會從起始索引提取字符到結尾
  2. 如果 start === end,返回一個空字串
  3. 如果 start >= end,效果會像兩個參數調換位置
  4. 參數小於 0 或為 NaN 都會被視為等於 0;大於 str.length 會被視為 str.length

透過此方法可以擷取出和比對字串相同長度的字串,再透過邏輯運算子做比對

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 字串長度,前者會回傳空字串,後者則會從字符串結尾開始擷取字串。

今天就介紹到這裡,如果大家有更好的寫法歡迎一起來討論~

參考資料


7會員
30內容數
正在一點一滴學習程式,相信知識量總有一天會匯聚成大海,目前專門研究前端中。
留言0
查看全部
發表第一個留言支持創作者!
傑米的沙龍 的其他內容
這篇主要會透過 CDN 引入 Material Icons,並補足官方文件裡只有提到 Filled 類別的引用方式,但沒有提到其他類別,像是 Outlined、Rounded、Sharp、Two tone,另外還會提到如何透過偽元素加入 Material Icons,現在我們就來看看如何引入吧!
提升(Hoisting) 指的是在創造環境階段時就把變數準備好,這時值還沒被賦予到變數上。此類型的概念可以使用執行環境的「創造階段」與「執行階段」來理解。
圖片可以說是 HTML 元素中以不受控出名的元素了,在預設情況下,完全不受父容器影響,以下就來看看有哪些方法讓圖片依照你的想法變化吧。
網頁中經常需要引入外部資源,其中字型更是不可或缺,好看的字體會為網頁質感大加分,免費的網頁字型資源以 Google Fonts 最為常見,今天就來使用 Codepen 試看看如何引入字型吧。
網頁中經常會出現正方形的設計,在切版時如果直接設定固定寬高就是破版的節奏,但單用百分比設定長寬,RWD 時還是會變得不夠正,這邊提供兩個方法:
所有的 CSS 設計模式都是為了維持可讀性、好維護、易擴充這幾個目標,今天就來談談 BEM 設計模式,並搭配 Sass 中的 SCSS 來介紹,並探討在各種情境下該如何使用 BEM。
這篇主要會透過 CDN 引入 Material Icons,並補足官方文件裡只有提到 Filled 類別的引用方式,但沒有提到其他類別,像是 Outlined、Rounded、Sharp、Two tone,另外還會提到如何透過偽元素加入 Material Icons,現在我們就來看看如何引入吧!
提升(Hoisting) 指的是在創造環境階段時就把變數準備好,這時值還沒被賦予到變數上。此類型的概念可以使用執行環境的「創造階段」與「執行階段」來理解。
圖片可以說是 HTML 元素中以不受控出名的元素了,在預設情況下,完全不受父容器影響,以下就來看看有哪些方法讓圖片依照你的想法變化吧。
網頁中經常需要引入外部資源,其中字型更是不可或缺,好看的字體會為網頁質感大加分,免費的網頁字型資源以 Google Fonts 最為常見,今天就來使用 Codepen 試看看如何引入字型吧。
網頁中經常會出現正方形的設計,在切版時如果直接設定固定寬高就是破版的節奏,但單用百分比設定長寬,RWD 時還是會變得不夠正,這邊提供兩個方法:
所有的 CSS 設計模式都是為了維持可讀性、好維護、易擴充這幾個目標,今天就來談談 BEM 設計模式,並搭配 Sass 中的 SCSS 來介紹,並探討在各種情境下該如何使用 BEM。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
10/2是全台颱風假,希望大家都有萬全準備! ※補充:赤暘仙帝是吃貨,最喜歡羊類妖獸的肉肉。 這個赤暘仙帝的立牌設計圖是今天出爐的,本來想說明天要跟廠商下訂單製作,現在只能等上班日了QQ 人物介紹:赤暘仙帝。 他是仙界五大勢力之一的赤暘仙宮之主。小時候,他家是開酒樓的凡人家庭。 因緣際會下
Thumbnail
隨著颱風山沱兒的強度增強及路徑變化,臺灣多個地區進入警戒狀態。本文回顧了颱風的最新預測圖及路徑,並討論了在颱風來臨時的安全預防措施,特別針對低窪地區的居民應如何確保自身安全。我們將提供實用建議,確保您和您的財產在這次山沱兒颱風中免受損害。
Thumbnail
1. 微星全方位充電樁參展智慧能源週,瞄準電動車商機 2. 廣達加碼25.88億採購燃料電池微電網系統,因應AI伺服器測試需求 3. 全新:WiFi-7需求起 股價帶頭狂飆
Thumbnail
Meta Ray-Ban AI眼鏡拍攝內容可能被自動上傳成為AI訓練資料|德國政府加強監管 Microsoft 的生成式 AI 技術發展|政治大學與 AMD 簽訂 AI 產學合作備忘錄
Thumbnail
題目:你將會得到一個單詞,你的任務是返回該單詞的中間字符。如果單詞的長度是奇數,則返回中間字符。如果單詞的長度是偶數,則返回中間的兩個字符。
Thumbnail
這週美股連續大漲兩天,相信很多人已經喜出望外開始想像上漲空間了,不過金融市場常常走勢不如一般人所想像,那麼接下來我們可能會面臨什麼樣的風險呢?就讓我們看下去
Thumbnail
【已完成目標|9月29日實施】 ●入境人數上限:6萬人次/週 ●檢疫天數/處所:居家檢疫3天+自主防疫4天(全程1人1室) ●篩檢方式:取消D0機場唾液PCR,發放4劑快篩(有症狀旅客維持原有攔檢/採檢機制) ●交通方式:防疫車輛、親友/機關團體接送、自駕 ●入境事由:全面恢復免簽 【準備開放目標|
Thumbnail
如果要把目前的信心分數用1到10分來評估的話,我會說7.5分。我們總是兩邊都站站,不特別悲觀,也不特別超樂觀。 因為我們還沒突破之前說的那斯達克過去新高,能不能在15700後穩步拉高站好?如果發展順利,我們會希望各公司Q3的財報成績每天逐漸把大市拉上去,那信心分數就會隨之提高了。
Thumbnail
在掛名諾貝爾的六個獎項中,我最關注的即是文學獎,原因可能與我從小的志向有關。成為一名詩人與作家曾經是我最初也最大的願望,這麼多年過去了,這個願望並沒有消失,它只是換了一個樣子:它如今以一個更適合我的樣子,持續引領著我體驗生活。
Thumbnail
🌟賽事情報: 味全龍 V.S 統一獅 (主) 🌟比賽時間: 10/7 18:35 🌟比賽地點: 臺南市立棒球場 🌟基本盤面分析: 主場統一獅讓分盤開39次過20次,過盤率51% 主場統一獅大分盤開49次過23次,過盤率47% 客場味全龍受讓盤口開45次過21次,過盤率47% 客場味全龍大分盤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
10/2是全台颱風假,希望大家都有萬全準備! ※補充:赤暘仙帝是吃貨,最喜歡羊類妖獸的肉肉。 這個赤暘仙帝的立牌設計圖是今天出爐的,本來想說明天要跟廠商下訂單製作,現在只能等上班日了QQ 人物介紹:赤暘仙帝。 他是仙界五大勢力之一的赤暘仙宮之主。小時候,他家是開酒樓的凡人家庭。 因緣際會下
Thumbnail
隨著颱風山沱兒的強度增強及路徑變化,臺灣多個地區進入警戒狀態。本文回顧了颱風的最新預測圖及路徑,並討論了在颱風來臨時的安全預防措施,特別針對低窪地區的居民應如何確保自身安全。我們將提供實用建議,確保您和您的財產在這次山沱兒颱風中免受損害。
Thumbnail
1. 微星全方位充電樁參展智慧能源週,瞄準電動車商機 2. 廣達加碼25.88億採購燃料電池微電網系統,因應AI伺服器測試需求 3. 全新:WiFi-7需求起 股價帶頭狂飆
Thumbnail
Meta Ray-Ban AI眼鏡拍攝內容可能被自動上傳成為AI訓練資料|德國政府加強監管 Microsoft 的生成式 AI 技術發展|政治大學與 AMD 簽訂 AI 產學合作備忘錄
Thumbnail
題目:你將會得到一個單詞,你的任務是返回該單詞的中間字符。如果單詞的長度是奇數,則返回中間字符。如果單詞的長度是偶數,則返回中間的兩個字符。
Thumbnail
這週美股連續大漲兩天,相信很多人已經喜出望外開始想像上漲空間了,不過金融市場常常走勢不如一般人所想像,那麼接下來我們可能會面臨什麼樣的風險呢?就讓我們看下去
Thumbnail
【已完成目標|9月29日實施】 ●入境人數上限:6萬人次/週 ●檢疫天數/處所:居家檢疫3天+自主防疫4天(全程1人1室) ●篩檢方式:取消D0機場唾液PCR,發放4劑快篩(有症狀旅客維持原有攔檢/採檢機制) ●交通方式:防疫車輛、親友/機關團體接送、自駕 ●入境事由:全面恢復免簽 【準備開放目標|
Thumbnail
如果要把目前的信心分數用1到10分來評估的話,我會說7.5分。我們總是兩邊都站站,不特別悲觀,也不特別超樂觀。 因為我們還沒突破之前說的那斯達克過去新高,能不能在15700後穩步拉高站好?如果發展順利,我們會希望各公司Q3的財報成績每天逐漸把大市拉上去,那信心分數就會隨之提高了。
Thumbnail
在掛名諾貝爾的六個獎項中,我最關注的即是文學獎,原因可能與我從小的志向有關。成為一名詩人與作家曾經是我最初也最大的願望,這麼多年過去了,這個願望並沒有消失,它只是換了一個樣子:它如今以一個更適合我的樣子,持續引領著我體驗生活。
Thumbnail
🌟賽事情報: 味全龍 V.S 統一獅 (主) 🌟比賽時間: 10/7 18:35 🌟比賽地點: 臺南市立棒球場 🌟基本盤面分析: 主場統一獅讓分盤開39次過20次,過盤率51% 主場統一獅大分盤開49次過23次,過盤率47% 客場味全龍受讓盤口開45次過21次,過盤率47% 客場味全龍大分盤