使用 Ramda Js,我需要创建一个函数,该函数可以使用同一对象上不同属性的值来设置一个对象属性。到目前为止,我的尝试如下:
var foo = R.set(R.lensProp('bar'), 'foo' + R.prop('foo'));
var result = foo({foo:"bar"});
期望的结果:
{foo:"bar", bar:"foobar"}
实际结果:
{foo:"bar", bar: "foofunction f1(a) {... etc"}
显然我在这里误解了一些东西,任何关于如何解决这个问题的见解都将不胜感激。
最佳答案
当一个属性(property)的值(value)取决于另一属性(property)的值(value)时,镜头就不适合了。 lambda 在这里可能是最好的:
const foo = o => R.assoc('bar', 'foo' + o.foo, o);
foo({foo: 'bar'});
// => {foo: 'bar', bar: 'foobar'}
关于javascript - lambda Js : Setting property on an object using a value from the same object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34660745/