使用 javascript partial.lenses 获取数组中的属性时遇到问题
Trouble using javascript partial.lenses to obtain properties within an array
我正在尝试弄清楚如何创建一个镜头,它会给我一个数组中的键值数组。这是一个简单的例子:
const L = require('partial.lenses');
const data = [
{
r: [
{
d: {
one: 1,
two: 2
}
}
]
},
{
r: [
{
d: {
three: 3,
four: 4
}
}
]
}
];
const lens = L.compose (
L.elems,
L.prop ('r'),
L.elems,
L.prop ('d'),
);
const result = L.get (lens, data);
console.log (result);
我要:
[{ one: 1, two: 2 }, { three: 3, four: 4 }]
但得到:
{ one: 1, two: 2 }
我确定这很简单,但不能完全正确。一旦我的镜头正确选择了 'd' 的数组,我想使用 L.modify 来获取所有 'd' 对象替换为字符串的数据。一旦我的镜头正确,我想我知道该怎么做了。
谢谢
使用L.collect
代替L.get
,L.get
returns第一个找到的实体,而L.collect
returns所有匹配的实体,类似[].filter
对比 [].find
.
我正在尝试弄清楚如何创建一个镜头,它会给我一个数组中的键值数组。这是一个简单的例子:
const L = require('partial.lenses');
const data = [
{
r: [
{
d: {
one: 1,
two: 2
}
}
]
},
{
r: [
{
d: {
three: 3,
four: 4
}
}
]
}
];
const lens = L.compose (
L.elems,
L.prop ('r'),
L.elems,
L.prop ('d'),
);
const result = L.get (lens, data);
console.log (result);
我要:
[{ one: 1, two: 2 }, { three: 3, four: 4 }]
但得到:
{ one: 1, two: 2 }
我确定这很简单,但不能完全正确。一旦我的镜头正确选择了 'd' 的数组,我想使用 L.modify 来获取所有 'd' 对象替换为字符串的数据。一旦我的镜头正确,我想我知道该怎么做了。
谢谢
使用L.collect
代替L.get
,L.get
returns第一个找到的实体,而L.collect
returns所有匹配的实体,类似[].filter
对比 [].find
.