2666. 只允许一次函数调用

简介: 2666. 只允许一次函数调用

说在前面

🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。

题目描述

给定一个函数 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
 */

公众号

关注公众号『前端也能这么有趣』,获取更多有趣内容。

说在后面

🎉 这里是 JYeontu,现在是一名前端工程师,有空会刷刷算法题,平时喜欢打羽毛球 🏸 ,平时也喜欢写些东西,既为自己记录 📋,也希望可以对大家有那么一丢丢的帮助,写的不好望多多谅解 🙇,写错的地方望指出,定会认真改进 😊,偶尔也会在自己的公众号『前端也能这么有趣』发一些比较有趣的文章,有兴趣的也可以关注下。在此谢谢大家的支持,我们下文再见 🙌。

目录
相关文章
|
2月前
练习函数调用
练习函数调用。
31 13
|
3月前
ARM处理器函数调用时的参数传递
ARM处理器函数调用时的参数传递
|
7月前
|
C语言
用指针函数变量调用函数
用指针函数变量调用函数
28 2
|
7月前
|
C++
14函数调用
14函数调用
42 0
函数调用
输出十行十列的星号(要求用函数调用方式解决)。
94 1
|
C++
38 C++ - 函数调用符号()重载
38 C++ - 函数调用符号()重载
36 0
|
C语言
【C语言函数调用详解】——传值调用&传址调用
【C语言函数调用详解】——传值调用&传址调用
454 0
|
存储 C++ 容器
函数调用运算符"()"
函数调用运算符"()"
|
机器学习/深度学习 开发工具 开发者
函数调用函数| 学习笔记
快速学习函数调用函数
函数调用函数| 学习笔记