點燈坊

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

使用 tail() 取得不包含第一個 Char 的 String

Sam Xiao's Avatar 2020-02-01

當我們使用 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

tail000

slice()

let data = '1let x = 1'

let tail = str => str.slice(1)

tail(data) // ?

也可使用 String.prototypeslice() 實現 tail()

tail001

import { slice } from 'ramda'

let data = '1let x = 1'

let tail = slice(1)(Infinity)

tail(data) // ?

也可使用 Ramda 的 slice() 實現 tail()

Ramda 的 slice() 可同時接受 array 或 string

tail003

Ramda

import { tail } from 'ramda'

let data = '1let x = 1'

tail(data) // ?

Ramda 已經提供 tail() 可直接使用。

tail()
String -> String
取得不包含第一個 char 的 string

String:data 為 string

String:回傳為 string

tail002

Conclusion

  • tail()drop(1) 等效,可交替使用

Reference

Ramda, tail()