但若要忽略單一 Property 會使用 dissoc()
,但若為單一 Nested Property 則要使用 dissocPath()
。
Version
Ramda 0.27.1
dissocPath()
import { pipe, map, dissocPath } from 'ramda'
let data = [
{
title: 'FP in JavaScript',
price: {
Amazon: 100,
eBay: 200
}
},
{
title: 'Programming Haskell',
price: {
Amazon: 300,
eBay: 400
}
},
{
title: 'Speaking JavaScript',
price: {
Amazon: 500,
eBay: 600
}
}
]
pipe(
map(dissocPath(['price', 'Amazon']))
)(data) // ?
27 行
pipe(
map(dissocPath(['price', 'Amazon']))
)(data) // ?
data
為 Nested Object,不想顯示 price
下的 Amazon
property。
dissocPath()
[String] → {k: v} → {k: v}
忽略 Nested Object 單一 property 並回傳全新 Object
[String]
:單一忽略 propery,以 Array 提供
{k: v}
:data 為 Object
{k: v}
:回傳全新 Object
Conclusion
dissoc()
就功能上與dissocPath()
相同,唯dissoc()
適用一般 Object,而dissocPath()
適用於 Nested Object