使用 takeLastWhile() 根據自訂條件取得 String 最後幾個 Char
takeLast()
只能取得 String 固定最後幾個 Char,若想自行提供自訂條件 Predicate,就得使用 takeLastWhile()
。
失くすものさえない今が強くなるチャンスよ
takeLast()
只能取得 String 固定最後幾個 Char,若想自行提供自訂條件 Predicate,就得使用 takeLastWhile()
。
takeLast()
只能取得 Array 固定最後筆資料,若想自行提供自訂條件 Predicate,就得使用 takeLastWhile()
。
take()
只能取得 String 固定前幾個 Char,若想自行提供自訂條件 Predicate,就得使用 takeWhile()
。
take()
只能取得 Array 固定前幾筆資料,若想自行提供自訂條件 Predicate,就得使用 takeWhile()
。
若只想取 String 最後幾個 Char,Ramda 提供了 takeLast()
。
若只想取 Array 的後幾筆資料,Ramda 提供了 takeLast()
。
對於一般需求,uniq()
即可勝任,但若需自行提供特殊比較方式,則要使用 uniqWith()
,自行傳入 Callback。
ECMAScript 的 Array.prototype
並沒有內建 uniq()
,在 ECMAScript 2015 可使用 Set
時實現,但僅限於 Primitive;Ramda 的 uniq()
可同時處理 Primitive 與 Object。
Ramda 有些 Function 很少直接使用,而是用來產生 Predicate,eqBy()
就是其中之一。
Ramda 的 call()
乍看很不起眼,但若搭配 converge()
之後,就能動態產生 Converging Function。
若想將兩個 Array 加以合併,並只保留不重複部分,Ramda 提供了 union()
,但若要自訂比較條件,則要使用 unionWith()
。
若想將兩個 Array 加以合併,並只保留不重複部分,Ramda 提供了 union()
。
當我們使用 document.cookie()
讀取 Cookie 時,回傳為 String,我們希望提供 Key 讀取其 Value,這常見需求該如何實現呢 ? 本文分別使用 Imperative、Functional 與 Maybe 三種方式實現。
在使用 Vuetify 的 Lists 時,為了讓視覺呈現更加明顯,我們想要在每筆資料間加上一條分隔線,但由於 Lists 要求從 Data 動手,必須在兩筆資料間加上 { divider: true }
,這該如何實現呢 ?
實務上常遇到將 2 個 String 合併成單一 String,Ramda 提供了 concat()
。
實務上常遇到將 2 個 Array 合併成單一 Array,可使用 concat()
合併之。
在 Array,我們有 map()
能在 Length 不變前提下,改變其 Element;若要在 Object 的 Key 不變前提下,根據其 Key 改變 Value,Ramda 提供了 mapObjIndexed()
。
實務上常看到 String function、+
operator 與 toString()
將任意型別轉成 String,但其實都只能處裡 primitive,無法處理 object,使用 Ramda 的 toString()
是更安全做法。
若要判斷 Array 是否以特定 Array 開始,實務上較少遇到,且實現方式也比較少。
若要判斷 String 是否以特定 String 結尾,實務上較少遇到,且實現方式也比較少。
若要判斷 Array 是否以特定 Array 結束,可使用 endsWith()
,實務上較少使用。
實務上我們常需判斷某一個值是否存在於 String 內,若存在則傳回 true
,若不存在則傳回 false
,對於簡單的需求,我們會希望不要傳入 Callback,直接傳入 String 即可。
實務上我們常需判斷某一個值是否存在於 Array 內,若存在則傳回 true
,若不存在則傳回 false
,對於簡單的需求,我們會希望不要傳入 Callback,直接傳入 Data 即可。
Tuple 算是 FP 語言標準型別,而其中最常用的是由兩個值組合的 Pair,但 ECMAScript 並沒有支援,Ramda 提供 pair()
模擬之。
Ramda 為 FP Library,可在 Vue 中輕易使用 Ramda。