Ramda `evolve` 嵌套对象
Ramda `evolve` nested object
我有一个类似这样的列表:
var list = [
{
stack: [
{
file: 'abc'
}
]
},
{
stack: [
{
file: 'abc'
},
{
file: 'abc'
}
]
}
];
我想更改每个文件名,例如 'def'。如何使用 ramda
?
我试过类似的东西:
var trans = {
file: replace('abc', 'def')
};
var f = R.evolve(trans)
var f2 = R.map(f)
R.map(f2, list)
但是没用。我需要以某种方式在解决方案中包含 stack
字段。
好吧,这不是很漂亮,但我认为这可以做到:
R.map(R.over(
R.lensProp('stack'),
R.map(R.over(R.lensProp('file'), R.replace('abc', 'def')))
))(list)
您可能还可以在内部使用 evolve
,但是 lens
es 非常强大,而且更普遍。
我有一个类似这样的列表:
var list = [
{
stack: [
{
file: 'abc'
}
]
},
{
stack: [
{
file: 'abc'
},
{
file: 'abc'
}
]
}
];
我想更改每个文件名,例如 'def'。如何使用 ramda
?
我试过类似的东西:
var trans = {
file: replace('abc', 'def')
};
var f = R.evolve(trans)
var f2 = R.map(f)
R.map(f2, list)
但是没用。我需要以某种方式在解决方案中包含 stack
字段。
好吧,这不是很漂亮,但我认为这可以做到:
R.map(R.over(
R.lensProp('stack'),
R.map(R.over(R.lensProp('file'), R.replace('abc', 'def')))
))(list)
您可能还可以在内部使用 evolve
,但是 lens
es 非常强大,而且更普遍。