當我們使用 Function 處理 String 時,常常第一個 Char 不是我們所要的,此時可用 tail()
剔除之。
Version
macOS Catalina 10.15.2
VS Code 1.41.1
Quokka 1.0.274
Ramda 0.26.1
Imperative
let data = '1let x = 1'
let tail = str => {
let result = ''
for(let i = 0; i < str.length; i++)
if (i !== 0)
result += str[i]
return result
}
tail(data) // ?
1let x = 1;
一開始有 1
,我們想將 1
拿掉成為 let x = 1
。
Imperative 會使用 for
loop,判斷當 index 為第一個 char 時,將 char +
進 result
。
slice()
let data = '1let x = 1'
let tail = str => str.slice(1)
tail(data) // ?
也可使用 String.prototype
的 slice()
實現 tail()
。
import { slice } from 'ramda'
let data = '1let x = 1'
let tail = slice(1)(Infinity)
tail(data) // ?
也可使用 Ramda 的 slice()
實現 tail()
。
Ramda 的
slice()
可同時接受 array 或 string
Ramda
import { tail } from 'ramda'
let data = '1let x = 1'
tail(data) // ?
Ramda 已經提供 tail()
可直接使用。
tail()
String -> String
取得不包含第一個 char 的 string
String
:data 為 string
String
:回傳為 string
Conclusion
tail()
與drop(1)
等效,可交替使用