首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ramda数组到多参数函数

Ramda数组到多参数函数
EN

Stack Overflow用户
提问于 2020-11-15 09:58:38
回答 2查看 193关注 0票数 1

给定字符串6-10的输入,我希望获得一个数字[6,6.5,7,7.5,8,8.5,9,9.5,10]的列表。

这就是我想出来的:

代码语言:javascript
复制
const x = "6-10";
const sizeMinMax = R.pipe(R.split('-'), R.map(parseInt))
sizeMinMax(x); //[6,10]

const sizesStepped = (min, max) => R.unfold(minSize => minSize > max ? false : [minSize, minSize + 0.5], min)
sizesStepped(8,10); // [8,8.5,9,9.5,10]

如何将sizeMinMax(x)的输出(它是一个带有2个参数的sizeStepped函数的数组)传输到sizeStepped函数?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-15 10:31:17

sizesStepped包装R.apply:

代码语言:javascript
复制
const sizeMinMax = R.pipe(R.split('-'), R.map(parseInt))

const sizesStepped = (min, max) => R.unfold(minSize => minSize > max ? false : [minSize, minSize + 0.5], min)

const fn = R.pipe(sizeMinMax, R.apply(sizesStepped));

const x = "6-10"

const result = fn(x)

console.log(result); // [8,8.5,9,9.5,10]
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.27.1/ramda.min.js" integrity="sha512-rZHvUXcc1zWKsxm7rJ8lVQuIr1oOmm7cShlvpV0gWf0RvbcJN6x96al/Rp2L2BI4a4ZkT2/YfVe/8YvB2UHzQw==" crossorigin="anonymous"></script>

票数 2
EN

Stack Overflow用户

发布于 2020-11-15 10:06:53

您可以通过实现range方法在vanilla JavaScript中这样做。

代码语言:javascript
复制
const range = (start, stop, step) =>
  Array.from({ length: (stop - start) / step + 1 }, (_, i) => start + i * step);

const x = '6-10';
const [s, e] = x.split('-');
const step = 0.5;
const ret = range(+s, +e, step);
console.log(ret);

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64843094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档