如何在 javascript 中的深层嵌套对象成员上使用 Ramda 的 omit() 函数
How can I use Ramda's omit() function on a deeply nested object member in javascript
我有一种情况,我想在展平和导出到 CSV 之前删除对象树的任何部分。 Ramda is my choice library for FP 在 JS 中,但我注意到 R.omit()
函数仅在目标对象的一层深度起作用。我怎样才能做到以下几点?
const R = require('ramda');
const obj = {
id: 1,
name: 'me',
audience_sizes: {
fb: 500,
dfp: 2000,
apn: 1800
}
};
console.log(JSON.stringify(R.omit(['id', 'audience_sizes.fb'], obj)));
我希望得到以下结果:
{"name":"me","audience_sizes":{"dfp":2000, "apn": 1800}}
我认为 Lenses 是一种更实用的方法。
R.over(R.lensProp('audience_sizes'), R.omit(['fb']), R.omit(['id'], obj));
DissocPath 看起来像您要找的东西。使用它或镜头进行更复杂的深度更新。
我有一种情况,我想在展平和导出到 CSV 之前删除对象树的任何部分。 Ramda is my choice library for FP 在 JS 中,但我注意到 R.omit()
函数仅在目标对象的一层深度起作用。我怎样才能做到以下几点?
const R = require('ramda');
const obj = {
id: 1,
name: 'me',
audience_sizes: {
fb: 500,
dfp: 2000,
apn: 1800
}
};
console.log(JSON.stringify(R.omit(['id', 'audience_sizes.fb'], obj)));
我希望得到以下结果:
{"name":"me","audience_sizes":{"dfp":2000, "apn": 1800}}
我认为 Lenses 是一种更实用的方法。
R.over(R.lensProp('audience_sizes'), R.omit(['fb']), R.omit(['id'], obj));
DissocPath 看起来像您要找的东西。使用它或镜头进行更复杂的深度更新。