我试图弄清楚如何创建一个镜头,该镜头可以从数组中为我提供键值数组。这是一个简单的示例:
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'对象都替换为字符串的数据。我想我一旦镜头正确就知道该怎么办。
谢谢
答案 0 :(得分:1)
使用L.collect
代替L.get
,L.get
返回找到的第一个实体,而L.collect
返回所有匹配的实体,类似于[].filter
与{{1 }}。