在Ramda步距

时间:2019-04-02 04:56:12

标签: ramda.js

Ramda中执行以下操作的最佳方法是什么:

_.range(0, 3, 0);
// => [0, 0, 0]

谢谢。

2 个答案:

答案 0 :(得分:1)

您可以使用R.repeat创建单个项目的多个实例的数组:

const result = R.repeat(0, 3)

console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.26.1/ramda.js"></script>

答案 1 :(得分:1)

如果您需要重复相同的次数 n 次,则Ori Drori已经为repeat提供了一个很好的答案。

但是,如果您需要支持步骤,则必须自己构建一个功能。 (Ramda具有range函数,但不支持step。)

所以Lodash将返回:

_.range(1, 10, 2);
//=> [1, 3, 5, 7, 9]

您可以使用Ramda unfold函数来实现类似的功能:

const rangeStep = curry((start, end, step) =>
  unfold(n => n < end ? [n, n + step] : false, start));

rangeStep(1, 10, 2);
//=> [1, 3, 5, 7, 9]