點燈坊

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

使用 lensIndex() 對 Array 建立 Lens

Sam Xiao's Avatar 2021-04-23

lensProp() 可針對 Object 建立 Lens,若要針對 Array 則要使用 lensIndex()

Version

Ramda 0.27.1

lensIndex()

import { lensIndex, over, inc, view, set } from 'ramda'

let data = [1, 2, 3]

view(lensIndex(1), data) // ?
set(lensIndex(1), 4, data) // ?
over(lensIndex(1), inc, data) // ?

data 為 Array,可使用 lensIndex() 對指定 index 建立 Lens,然後套用在 view()set()over() 上。

lensIndex()
Number → Lens s a
針對 Array 建立 Lens

Number:指定 Array 的 index

Lens s a:回傳 Lens

lensindex000

Conclusion

  • lensIndex() 只要提供 Array 的 index 就可建立 Lens,非常方便

Reference

Ramda, lensIndex()