【发布时间】:2018-09-07 15:17:02
【问题描述】:
我试图使用 Ramda 重构几段代码,我想知道,在 Ramda/函数式编程中解决以下代码的好方法是什么:
let arrayOfSomething = initArray();
for(let i = 0; SOME_INDEX_CONDITION(i)|| SOME_CONDITION(arrayOfSomething); i++) {
const value = operation(arrayOfSomething);
const nextValue = anotherOperation(value);
arrayOfSomething = clone(nextValue)
}
所以基本上我想在 arrayOfSomething 上迭代并应用相同的管道/操作组合,直到满足其中一个条件。将最后一个值 (nextValue) 作为对 forLoop 组合的反馈,这一点很重要。
【问题讨论】:
-
100在这里代表什么? -
100 || SOME_CONDITION(arrayOfSomething)中没有除 100 以外的其他值,并且从不评估默认值。 -
@ScottSauyet 好吧,100 只是 forLoop 的退出条件,因此它将遍历循环 100 次或直到满足依赖于 arrayOfSomething 的 SOME_CONDITION
-
@NinaScholz 该代码的算法与任何值无关,我将对其进行编辑,因此 100 不代表任何值。
标签: javascript functional-programming ramda.js