ECMAScript 使用 [0]
取得 Array 第一個 element,只可惜這是 Operator 而非 Function,因此無法使用 Function Composition,Ramda 另外提供了 head()
供 FP 使用。
Version
macOS Catalina 10.15.2
VS Code 1.41.1
Quokka 1.0.274
Ramda 0.26.1
Imperative
let data = [1, 2, 3]
let head = arr => arr[0]
head(data) // ?
Imperative 會直接使用 []
取得第一個 element。
Functional
import { nth } from 'ramda'
let data = [1, 2, 3]
let head = nth(0)
head(data) // ?
Functional 可使用 nth()
以 point-free 取得第一個 element。
Ramda
import { head } from 'ramda'
let data = [1, 2, 3]
head(data) // ?
Ramda 已經提供 head()
可直接使用。
head()
[a] -> a | undefined
取得 array 的第一個 element
import { head } from 'ramda'
let data = []
head(data) // ?
head()
若取不到資料,會回傳 undefined
。
Conclusion
init()
與head()
有一點不同,若取不到資料,init()
會回傳[]
empty array,而head()
會回傳undefined
,需小心處理