- 改写add函数
let add = (a, b) => a + b console.log(add(2,3));//5 console.log(add(2,4));//6 console.log(add(2,5));//7 let add2 = add(2) console.log(add2(3)) // 5 console.log(add2(4)) // 6 console.log(add2(5)) // 7 function add () { }function add (a) { return function (b) { return a+b } } - 完成curry函数
function sum(a, b, c) { return a + b + c; } const currySum = curry(sum) console.log(currySum(1)(2)(3)); console.log(currySum(1, 2)(3)); console.log(currySum(1)(2, 3)); function curry () {}function curry (fn) { return function curriedFn (...args) { if (args.length >= fn.length) { return fn.apply(this, args) } else { return function (...args2) { return curriedFn.apply(this, args.concat(args2)) } } } } - 完成curry函数
function sum(a, b, c) { return a + b + c; } const currySum = curry(sum) console.log(currySum(1)(2)(3)()); console.log(currySum(1, 2)(3)()); console.log(currySum(1)(2, 3)()); function curry () {}function curry (fn) { let argsArr = [] return function curried (...args) { if(!args.length) { let result = fn.apply(this, argsArr) argsArr = [] return result } else { argsArr = argsArr.concat(args) return curried } } } - add(1)(2)(3)(4)=10;完成add函数
function add (...num) { let sum = [...num] curry.toString = function () { return sum.reduce((acc,curr) => { return acc+curr },0) } function curry (...args) { sum = sum.concat(args) return curry } return curry } alert(add(1)(2)(3)(4))
柯里化 curry 面试题
于 2023-10-27 23:04:08 首次发布
文章介绍了如何在JavaScript中使用curry函数,展示了如何逐步创建和应用currySum函数,以及一个自定义的add函数,该函数利用curry技术处理多个参数。
868

被折叠的 条评论
为什么被折叠?



