若要忽略 Object 部分 Property,Ramda 提供了 omit()
;但若要忽略單一 Property,這就是 dissoc()
。
Version
Ramda 0.27.1
omit()
import { pipe, map, omit } from 'ramda'
let data = [
{ id: 1, title: 'FP in JavaScript', price: 100 },
{ id: 2, title: 'RxJS in Action', price: 200 },
{ id: 3, title: 'Speaking JavaScript', price: 300 }
]
pipe(
map(omit(['id']))
)(data) // ?
若想忽略 id
property 不顯示,可使用 omit()
,唯 omit()
必須傳進 Array。
dissoc()
import { pipe, map, dissoc } from 'ramda'
let data = [
{ id: 1, title: 'FP in JavaScript', price: 100 },
{ id: 2, title: 'RxJS in Action', price: 200 },
{ id: 3, title: 'Speaking JavaScript', price: 300 }
]
pipe(
map(dissoc('id'))
)(data) // ?
若只想忽略單一 property,可使用更精確的 dissoc()
,只需提供 String 即可。
dissoc()
String -> {k: v} -> {k: v}
忽略 Object 單一 property 並回傳全新 Object
String
:單一忽略 property
{k: v}
:data 為 Object
{k: v}
:回傳全新 Object
Conclusion
dissoc()
就功能上與omit()
相同,唯dissoc()
只能去除特定 property,而omit()
可一次去除多個 property