#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
本專欄將提供給您最新的市場資訊、產業研究、交易心法、精選公司介紹,以上內容並非個股分析,還請各位依據自身狀況作出交易決策。歡迎訂閱支持我,獲得相關內容,也祝您的投資之路順遂! 每年 $990 訂閱方案👉 https://reurl.cc/VNYVxZ 每月 $99 訂閱方案👉https://re
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
承上篇,2022壬寅年的氣場,已經在今年中秋後慢慢影響,蓋瑞是很有感的,雖然壬寅年對蓋瑞來說是“正官”為主的氣場,加上蓋瑞算是身強〈強格也有分等級,蓋瑞算強格中的弱格〉,正官氣場原本應該不錯,但蓋瑞本身有傷官,所以就形成了傷官見官,於是在中秋後,蓋瑞就明顯感受到老闆愛的關注,比如傷官人容易忽略小細節
Thumbnail
一場精采的講座不會因為疫情的關係而改變,【10月21日觀音山LIVE直播】全球精進實修課程 ,一起來聆聽觀音山龍德上師的佛法饗宴
Thumbnail
今天上課因為有點累所以我就睡著了,並沒有聽到太多老師詳細講解的故事,但睡到一半我被一個聲音叫醒,就是讓大部分喜歡汽機車的人視為機械的交響樂的排氣管聲浪,原來是YAMAHA的「MOTOBOT」,自行操控摩托車的人型自主騎乘機器人。  MOTOBOT是用AI+機器人來操控一台重機,來達成機車界的無人
Thumbnail
本專欄將提供給您最新的市場資訊、產業研究、交易心法、精選公司介紹,以上內容並非個股分析,還請各位依據自身狀況作出交易決策。歡迎訂閱支持我,獲得相關內容,也祝您的投資之路順遂! 每年 $990 訂閱方案👉 https://reurl.cc/VNYVxZ 每月 $99 訂閱方案👉https://re
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
承上篇,2022壬寅年的氣場,已經在今年中秋後慢慢影響,蓋瑞是很有感的,雖然壬寅年對蓋瑞來說是“正官”為主的氣場,加上蓋瑞算是身強〈強格也有分等級,蓋瑞算強格中的弱格〉,正官氣場原本應該不錯,但蓋瑞本身有傷官,所以就形成了傷官見官,於是在中秋後,蓋瑞就明顯感受到老闆愛的關注,比如傷官人容易忽略小細節
Thumbnail
一場精采的講座不會因為疫情的關係而改變,【10月21日觀音山LIVE直播】全球精進實修課程 ,一起來聆聽觀音山龍德上師的佛法饗宴
Thumbnail
今天上課因為有點累所以我就睡著了,並沒有聽到太多老師詳細講解的故事,但睡到一半我被一個聲音叫醒,就是讓大部分喜歡汽機車的人視為機械的交響樂的排氣管聲浪,原來是YAMAHA的「MOTOBOT」,自行操控摩托車的人型自主騎乘機器人。  MOTOBOT是用AI+機器人來操控一台重機,來達成機車界的無人