我在两个不同的文件中有一些函数,它们通过函数调用链接在一起,如下所示
文件1:
function getFunction(func){
}
文件2:
function Numbers(one, two) {
return (one*two);
}
var func = getFunction(Numbers);
这些被称为:
func(input_array);
我的数组有值1,3,5,7,9
,我需要func(input_array)
返回3,15,35,63,9
(最后一个值循环回到第一个值)
基本上我想做的是让getFunction返回一个函数,以便计算这些值。我遇到了麻烦,因为我不能全神贯注于发送和返回函数。如果不将其发送到函数中,我不知道如何访问该数组。让我知道是否需要澄清任何事情。
function getFunction(callback) {
return function(array) {
return array.map(function(cur, index) {
return callback(cur, array[(index+1) % array.length]);
});
};
}
getFunction
返回callback
参数的闭包,该函数是您要调用的函数。闭包接收array
参数,并使用循环调用数组中的回调array.map
。该%
模运算执行您想要的概括。
可能更清楚的另一种写法是:
function getFunction(callback) {
return function(array) {
var result = [];
for (var i = 0; i < array.length; i++) {
j = (i+1) % array.length; // Next index, wrapping around
result.push(callback(array[i], array[j]));
}
return result;
};
}
var func = getFunction(Numbers);
console.log(func([1,3,5,7,9])); // Logs [3,15,35,63,9]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句