由於 Array 有豐富的 Function 可用,因此實務上常常將 String 轉成 Array 處理,最後再轉回 String。
Version
macOS Catalina 10.15.2
VS Code 1.41.1
Quokka 1.0.274
Ramda 0.26.1
Functional
import { invoker } from 'ramda'
let data = 'usr/local/bin/node'
let split = invoker(1)('split')
split('/')(data) // ?
由於 ECMAScript 的 Array.prototype
已經內建 Split()
,因此可用 invoker()
將 method 轉成 function 使用。
Ramda
import { split } from 'ramda'
let data = 'usr/local/bin/node'
split('/')(data) // ?
Ramda 已經內建 split()
可直接使用。
split()
(String | RegExp) → String → [String]
將 String 轉成 Array
String | RegExp
:傳入 separator,亦可使用 regular expression
String
:data 為 string
[String]
:回傳為 array
tail()
import { split, pipe, tail } from 'ramda'
let data = '/usr/local/bin/node'
let fn = pipe(
split,
tail
)
fn('/', data) // ?
實務上使用 split()
時,常常第一筆或最後一筆不是所要的,可組合 init()
或 tail()
加以去除。
Conclusion
split()
與join()
常搭配使用,先將 string 用split()
轉成 array,透過 array 豐富的 function 處理後,最後再用join()
轉回 string