javascript - lambda Js : Setting property on an object using a value from the same object

标签 javascript ramda.js

使用 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/

相关文章:

javascript - 主干 View 委托(delegate)事件将不起作用

javascript - 在 API 帖子中注册用户时设置电子邮件和用户名的多重验证

javascript - 如何在同一个模块中调用函数

javascript - 您将如何重写这个多参数函数,最终实现点自由风格?

javascript - lambda : Duplicate an object by its (array) property

javascript - 让用户在客户端打开一个 xml 文件并使用 javascript 解析它

javascript - 如何使用 jquery 将个人信息从选择选项 ListView 传递到特定输入字段

javascript - 如何从 Crocks javascript 库中的 Monads 中提取值

javascript - lambda : Confused about pipe

node.js - 在nodejs类中调用ramda compose