點燈坊

失くすものさえない今が強くなるチャンスよ

使用 split() 將 String 轉成 Array

Sam Xiao's Avatar 2020-01-27

由於 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 使用。

split000

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

split001

tail()

import { split, pipe, tail } from 'ramda'

let data = '/usr/local/bin/node'

let fn = pipe(
  split,
  tail
)

fn('/', data) // ?

實務上使用 split() 時,常常第一筆或最後一筆不是所要的,可組合 init()tail() 加以去除。

split002

Conclusion

  • split()join() 常搭配使用,先將 string 用 split() 轉成 array,透過 array 豐富的 function 處理後,最後再用 join() 轉回 string

Reference

Ramda, split()
Ramda, tail()