javascript - 我怎样才能使这段代码在 Ramda.js/lodash 中更像 'functional programming' 风格

标签 javascript lodash ramda.js

我有这段代码:

var fn = function(fn, name) {
   this.commands.add(name, fn);
}.bind(this);

_.mapObjIndexed(fn, this.commandList);

我觉得有一种方法可以改进这段代码并将其简化为一行。我尝试了很多不同的方法,但我是 ramda.js 的新手,我可能会遗漏一些功能,这将使这变得更容易和更简单。

最佳答案

您似乎在寻找 flip function/ flip function :

_.mapObjIndexed(_.flip(this.commands.add), this.commandList);

如果 .bind(this.commands)对于 add功能是必需的,您可以使用 <a href="https://lodash.com/docs#bindKey" rel="noreferrer noopener nofollow">_.bindKey</a>(this.commands, "add") 缩短它.

如果由于参数数量的原因翻转无法正常工作,您可能需要输入 _.ary(…, 2) _.binary(…) .

关于javascript - 我怎样才能使这段代码在 Ramda.js/lodash 中更像 'functional programming' 风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36432868/

相关文章:

javascript - 如何在 javascript (lodash) 中替换对象数组中的对象

javascript - 如何使用 ramda js 对对象进行排序

javascript - 如何映射一对多?

javascript - 在 react 组件中获得 promise 值

javascript - 在哪里包含下划线模板?

javascript - 使用 JavaScript 比较 2 个数组并创建一个新的对象数组,该数组不包含 id 字段匹配的对象

javascript - 在数组 Ramda 中通过 id 查找对象

javascript - 如何在对象数组中使用 *ngFor 循环?

javascript - 建立网站时出现搜索引擎问题(TypeError : Cannot read property 'toLowerCase' of undefined)

javascript - 根据值过滤对象属性