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

更新於 2024/10/01閱讀時間約 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 字串長度,前者會回傳空字串,後者則會從字符串結尾開始擷取字串。

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

參考資料


avatar-img
7會員
30內容數
正在一點一滴學習程式,相信知識量總有一天會匯聚成大海,目前專門研究前端中。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
傑米的沙龍 的其他內容
這篇主要會透過 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
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
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
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
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% 客場味全龍大分盤