问题标签 [ramda.js]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3741 浏览

javascript - Ramda.js 中的分组和求和

我有两个清单:

我想合并两个列表中的数据,按 Id 对它们进行分组并使用结果中每个 Id 的最高日期,并将唯一对象的总数(即具有相同 Id 和日期的对象 - 只能有一个每个日期和 ID 的金额)。

换句话说,我想要这个结果:

我对 Ramda 很陌生,但我已经设法使用以下代码合并列表:

对于分组和求和:

虽然它看起来确实有效,但我想知道在 Ramda 中是否有更好的方法来解决这个问题?groupBy的文档表明它在这里没有用。

更新版本:jsFiddle

0 投票
1 回答
166 浏览

javascript - 如何编写一个函数,以便内部应用程序隐式接收外部参数?

编辑:我已将其标记为Can I make this function defenition [sic] 的副本更短?,它在功能上是相同的(两个双关语),并且从 Ramda 库的一位作者那里得到了很好的回答。

这是一个更多的学术好奇心而不是实际需要的问题。

我正在试用Ramda库,它强调“无点”风格的函数组合。

假设我有一个对象数组,比如

我想要一个函数来按 id 返回元素(或者至少目前是一个按 id 匹配的列表)。在本机 javascript 中,我可以说

然后byId('c', things)会给我一个仅包含第三项的数组。

在 Ramda 中,我可以更简洁地做到这一点,并且无需参考数据:

结果是一个“curried”函数,因此 byIdRam('c')(things)给出与第一个版本相同的结果。

我觉得剩余的 lambda 也是不必要的,但我不知道如何在没有明确引用 id 的情况下编写函数。有谁知道更好的方法来写这个?

更新答案很简单

这也给出了我想要的语义,它要么返回单个元素,要么返回undefined. 好的!

0 投票
1 回答
162 浏览

javascript - 映射到没有临时变量的对象

如何映射对象数组并基于该对象创建另一个对象(基于元素属性),而不使用临时对象?所以如果我有类似的东西:

没有东西我怎么能完成同样的objx事情?使用或不使用任何帮助程序库 - lodash、ramda、jquery、angular 等。

0 投票
1 回答
596 浏览

javascript - Ramda 不提供深度混合?

mixedIObj 不包括内部对象的 innerStrB。任何 ramda 解决方案?

0 投票
1 回答
1219 浏览

cordova - 使用 PhoneGap 和 JSZip 压缩和上传文件

我有读取本地文件夹的代码,然后压缩相关文件并将它们上传到服务器:

问题是有时会上传一个空文件,这绝不应该发生。因此,可能是同步问题导致文件在创建 Zip 文件并将其写入存储之前上传。我不确定问题出在哪里。我尝试从 Map 函数返回 Promise,然后使用 Promise.all(...).then() 模式,但有时我仍然得到一个空白文件。所以要么我的实现不正确,要么 zip.generate() 也异步运行(或两者兼而有之)。

在尝试上传之前,如何确保 zip 文件已完全写入存储?

0 投票
2 回答
3806 浏览

javascript - 我怎样才能用 Ramda.js 做得更好

所以我有一个div列表: list

我想要列表的一个子集删除类中的 div .fade.selected并且还只是从带有类的 div 中获取列表。

所以使用R.takeWhileand R.dropWhile

然后我想映射该新列表并在.active该列表的子集上添加一个类R.takeR.forEachR.map

就像是 :

我对这个 FP 的东西真的很陌生,并试图掌握它。

任何见解将不胜感激!谢谢!:)

更新

供将来参考,这就是我所做的:

0 投票
3 回答
233 浏览

javascript - 为什么我的代码可以与 underscore.js 一起使用,但当我使用 Ramda.js 时却不行?

我是 Javascript 新手,我正在做一个编码挑战来了解更多关于该语言的信息。这与学校无关或类似的东西,完全是为了我自己的个人成长。这是挑战:

如果它是斐波那契数,则返回所有奇数斐波那契数的总和,直到并包括传递的数字。

在过去的两个晚上,我一直在努力解决这个挑战。当我使用 underscore.js 运行我的代码时,它可以工作。当我使用 Ramda.js 时,它会说NaN. 我认为两者都会返回NaN。我很惊讶我能从一个而不是另一个得到正确的答案。任何见解将不胜感激!

0 投票
1 回答
130 浏览

macros - SweetJS:为特定库编写宏

我目前正在做一个小项目,其中包括为 Ramda 编写宏。这是一个例子:

我尝试编译这个简单的代码示例作为开始:

由于卫生原因,编译后的代码如下所示:

我的问题是我不知道如何引用 ramda。

有没有人尝试为特定库编写宏并遇到此问题?

0 投票
2 回答
12358 浏览

ramda.js - Ramda:如何根据嵌套数组中的值进行过滤

我正在尝试以一种功能性的方式(使用 Ramda)来实现这一点。我的 JSON 结构是这样的

我正在尝试根据“标签”属性中的值进行过滤,但没有成功。我能够过滤整数/字符串(年龄和用户名),但我无法弄清楚如何使用嵌套数组(标签)中的值进行过滤。任何帮助将非常感激。

0 投票
2 回答
302 浏览

javascript - FRP中EventStreams的循环依赖

所有示例都使用Ramdaas _(很清楚示例上下文中的方法)和kefiras frp(与 bacon.js 中几乎相同的 API)

我有一个流,它描述了位置的变化。

+1当我按下UP键和-1on时它会发出DOWN

为了获得scan这个增量的位置

这是预期的工作。但我想限制xfrom 0to的值1000

为了解决这个问题,我找到了两个解决方案:

  1. 更改功能scan

    /li>

看起来还可以,但后来随着新规则的引入,这种方法会越来越多。所以我的意思是它看起来不像可组合和 FRPy。

  1. 我有current立场。和delta。我想申请deltacurrent只要current after applying不会超出限制。

    • current取决于delta
    • delta取决于current after applying
    • current after applying取决于current

    所以它看起来像循环依赖。但我使用flatMap.

    您可以在iofjuupasli/capture-the-sheep-frp查看完整的代码示例

    它正在工作演示gh-pages

    它有效,但使用循环依赖可能是反模式。

有没有更好的方法来解决 FRP 中的循环依赖?

第二个更一般的问题

Controller可以从两个中读取一些值,并根据Model它的值更新它们。

所以依赖项看起来像:

FRP 没有Controller. 所以Modelvalue 应该从 other 以声明方式计算Model。但是如果Model1从另一个Model2相同的计算,那么Model2计算从Model1

例如两个具有碰撞检测的玩家:两个玩家都有positionmovementmovement第一个玩家取决于第二个玩家,position反之亦然。

我对所有这些东西还是新手。经过多年的命令式编码,开始以声明式 FRP 风格思考并不容易。可能我错过了一些东西。