题解 | #FED39 使用闭包#

使用闭包

http://www.nowcoder.com/practice/578026cd24e3446bbf27fe565473dc26

实现函数 makeClosures,调用之后满足如下条件:
1、返回一个函数数组 result,长度与 arr 相同
2、运行 result 中第 i 个函数,即 resulti,结果与 fn(arr[i]) 相同

输入:
[1, 2, 3], function (x) { 
    return x * x; 
}

输出:4

通过函数声明 以及闭包 来惰性调用 返回

function makeClosures(arr, fn) {
    let result = [];
    for(let i=0;i<arr.length;i++){
        let func = function(){
            return fn(arr[i]);
        }
        result.push(func);
    }
    return result;
}
全部评论
这个解法其实利用了let的作用域问题 可以把let换为var 程序是跑不通的
2 回复 分享
发布于 2021-08-10 13:12

相关推荐

牛客10001:G了+1,被前端/客户端给捞起来了,不太想面
投递美团等公司7个岗位 美团求职进展汇总
点赞 评论 收藏
分享
评论
4
1
分享

创作者周榜

更多
牛客网
牛客企业服务