说在前面
🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。
题目描述
给定一个函数 fn ,它返回一个新的函数,返回的函数与原始函数完全相同,只不过它确保 fn 最多被调用一次。
- 第一次调用返回的函数时,它应该返回与 fn 相同的结果。
- 第一次后的每次调用,它应该返回 undefined 。
解题思路
函数在第一次被调用时会执行fn函数,并将其返回值保存在变量res中。然后,将fn重新赋值为一个空函数,这样在之后再次调用新函数时,fn函数就不会再被执行。
最后,新函数返回之前保存的res值。
这个函数的作用是确保fn函数只能被调用一次。
AC代码
/**
* @param {Function} fn
* @return {Function}
*/
var once = function(fn) {
return function(...args){
const res = fn(...args);
fn = ()=>{};
return res;
}
};
/**
* let fn = (a,b,c) => (a + b + c)
* let onceFn = once(fn)
*
* onceFn(1,2,3); // 6
* onceFn(2,3,6); // returns undefined without calling fn
*/
公众号
关注公众号『前端也能这么有趣
』,获取更多有趣内容。文章来源:https://www.toymoban.com/news/detail-809032.html
说在后面
🎉 这里是 JYeontu,现在是一名前端工程师,有空会刷刷算法题,平时喜欢打羽毛球 🏸 ,平时也喜欢写些东西,既为自己记录 📋,也希望可以对大家有那么一丢丢的帮助,写的不好望多多谅解 🙇,写错的地方望指出,定会认真改进 😊,偶尔也会在自己的公众号『
前端也能这么有趣
』发一些比较有趣的文章,有兴趣的也可以关注下。在此谢谢大家的支持,我们下文再见 🙌。文章来源地址https://www.toymoban.com/news/detail-809032.html
到了这里,关于2666. 只允许一次函数调用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!