这是我的代码。我没有得到我想要的输出。它应该超过50但它没有。有人请帮我解决这个问题?
const checkNum = entity => typeof entity === 'string' ? parseInt(entity) : entity;
const multiply = (x , y) => x => y => x * y;
const multiOne = (ar, gr) => ar.map(checkNum).map(multiply);
multiOne([5, 10]);
答案 0 :(得分:2)
map
是一对一操作,因此对于您的数组,它会生成另一个数组。第二个论点不是你的想法。
reduce
是一个多对一的操作,通过一次重复地对两个元素应用一个操作来获取和数组并减少/折叠它(首先是数组中的两个元素,然后是结果先前的操作与数组的另一个元素相结合。)
const multiply = (x, y) => x * y;
const multiOne = (ar) => ar.reduce(multiply);
console.log(multiOne([5, 10]));
你似乎也想要部分应用功能,但你太过于讨论。 ES6中的标准函数不使用currying,它在实际FP语言中更常见(例如Haskell)。