网站首页 > 技术文章 正文
bfe.dev是一个针对前端的刷题网站,像是前端的LeetCode。该系列文章是我在上面的刷题日记。
题目 1
实现curry() bigfrontend.dev/problem/imp…
分析
比较基础的题目了。首先看一下example
const curriedJoin = curry(join)
curriedJoin(1, 2, 3) // '1_2_3'
curriedJoin(1)(2, 3) // '1_2_3'
也就是说 curry() 需要返回一个function,这个function接受任意数量的参数,并且
1. 如果参数够了,就执行本来的function
2. 如果参数不够,就”保存”下参数,返回一个新的function。 这个function含有“保存”好的参数。这个可以通过 Function.prototype.bind 来实现。
代码
这个题目比较简单,直接放上代码。
function curry(func) {
return function curried(...args) {
// 1\. if enough args, call func
// 2\. if not enough, bind the args and wait for new one
if (args.length >= func.length) {
return func.apply(this, args)
} else {
return curried.bind(this, ...args)
}
}
}
注意 curried.bind(this, ...args) 的实现。
顺利pass!
最后
这个题目比较简单了。有兴趣可以去 bfe.dev上试一试。
与此题相关的第二题就没这么简单了,敬请期待下一篇文章,感谢阅读
猜你喜欢
- 2024-11-22 【每日一题】数量刷题开始啦
- 2024-11-22 前端面试第二天
- 2024-11-22 前端面试总结
- 2024-11-22 「offerMe——刷题必备」java如何实现开根号的运算
- 2024-11-22 耗时7天我终于把LeetCode刷通关:数组十七连,真是不简单
- 2024-11-22 前端小姐姐的大厂面试过程复盘(微信/阿里/头条,附答案篇)
- 2024-11-22 大厂面试必刷题之“接雨水”
- 2024-11-22 刷 leetcode,进字节、阿里等一线大厂,刷题之前一定先打好基础
- 2024-11-22 作为前端开发者,你都经历过怎样的面试?
- 2024-11-22 被逼无奈学了几个mysql命令,竟然有大用
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- oracle面试 (55)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)