Ramda 步进范围
Range with step in Ramda
在 Ramda 中执行以下操作的最佳方法是什么:
_.range(0, 3, 0);
// => [0, 0, 0]
谢谢。
您可以使用 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>
如果您需要重复相同的数字 n 次,那么 Ori Drori 已经提供了很好的答案repeat
。
但是如果你需要支持step,你就得自己建一个函数。 (Ramda 有一个 range
函数,但它不支持步进。)
所以 Lodash 会 return:
_.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]
在 Ramda 中执行以下操作的最佳方法是什么:
_.range(0, 3, 0);
// => [0, 0, 0]
谢谢。
您可以使用 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>
如果您需要重复相同的数字 n 次,那么 Ori Drori 已经提供了很好的答案repeat
。
但是如果你需要支持step,你就得自己建一个函数。 (Ramda 有一个 range
函数,但它不支持步进。)
所以 Lodash 会 return:
_.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]