使用 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.getL.getreturns第一个找到的实体,而L.collectreturns所有匹配的实体,类似[].filter 对比 [].find.

https://github.com/calmm-js/partial.lenses#l-collect