首页 > 试题广场 >

使用闭包

[编程题]使用闭包
  • 热度指数:84475 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
实现函数 makeClosures,调用之后满足如下条件:
1、返回一个函数数组 result,长度与 arr 相同
2、运行 result 中第 i 个函数,即 result[i](),结果与 fn(arr[i]) 相同

示例:
var arr = [1,2,3]; 
var fn = function (x) { 
    return x * x; 
}
var result = makeClosures(arr,fn);
(result[1]() === 4) === (fn(arr[1]) === 4) === true
头像 牛客err
发表于 2020-10-24 22:29:13
function makeClosures(arr, fn) { let result=[]; for(let i=0;i<arr.length;i++){ result[i]=fn.bind(this,arr[i]); } return res 展开全文
头像 驊驊龔頾
发表于 2021-03-08 11:17:11
function makeClosures(arr, fn) {     return arr.map(el=>{         r 展开全文
头像 jack_21
发表于 2021-07-14 14:38:49
实现函数 makeClosures,调用之后满足如下条件:1、返回一个函数数组 result,长度与 arr 相同2、运行 result 中第 i 个函数,即 resulti,结果与 fn(arr[i]) 相同 输入: [1, 2, 3], function (x) { return x 展开全文
头像 agul
发表于 2021-07-18 08:49:20
function makeClosures(arr, fn) { let fnArr = [] for (let i in arr) { fnArr.push(fn.bind(this, arr[i])) } return fnArr // 展开全文
头像 王鑫DreamFox
发表于 2022-06-16 14:26:50
function makeClosures(arr, fn) {     let result = new Array(arr.length);    &nbs 展开全文
头像 牛客372891042号
发表于 2021-11-18 18:44:30
function makeClosures(arr, fn) {     return arr.map(item => {        展开全文
头像 前端消防圆
发表于 2023-06-24 14:59:41
思路:闭包。注意,返回的是函数数组,故可以使用map将arr中的每个元素映射为一个函数,函数的返回值是fn(el)。 function makeClosures(arr, fn) { return arr.map(el=>{ return function(){ 展开全文
头像 _峰_
发表于 2023-05-21 20:42:43
function makeClosures(arr, fn) { return arr.map(num=>()=>fn(num) )}
头像 牛客979740006号
发表于 2021-06-10 10:46:18
//方法一--使用bind()方法,将fn() push到fncArr里面 function makeClosures(arr, fn) { var fncArr = [] arr.forEach(item=>{//闭包 fncArr. 展开全文
头像 Vemon.
发表于 2023-10-13 17:16:16
function makeClosures (arr, fn){ return arr.map(item=>{ return ()=> fn(item) }) }