解释下面的Javascript代码
我是js的新手,我一直在关注Mozilla开发者网站。在函数部分,我似乎无法理解以下内容解释下面的Javascript代码,javascript,Javascript,我是js的新手,我一直在关注Mozilla开发者网站。在函数部分,我似乎无法理解以下内容 function map(f,a) { var result = [], // Create a new Array i; for (i = 0; i != a.length; i++) result[i] = f(a[i]); return result; } 特别是,这一行“结果[i]=f(a[i]) 来自Mozilla: 将函数作为参数传递给另一个函数时,函数表达式非
function map(f,a) {
var result = [], // Create a new Array
i;
for (i = 0; i != a.length; i++)
result[i] = f(a[i]);
return result;
}
特别是,这一行“结果[i]=f(a[i])
来自Mozilla:
将函数作为参数传递给另一个函数时,函数表达式非常方便。下面的示例显示正在定义映射函数,然后使用匿名函数作为其第一个参数进行调用
你能解释一下吗
这里有一个链接供参考。
这段代码适用于数组“a”函数“f”的每个元素,并返回数组“result”,其中包含“a”中每个元素运行函数“f”的结果 对不起,我有一个递归:) 实际上它可以这样使用:
var array = map(function(val){ return val + 1; },[1,2,3,4,5]);
在“数组”中,您将获得以下值:
[2,3,4,5,6]
结果是一个数组,索引i处的元素被分配一个函数调用的结果,该函数调用采用参数a[i]
上面一行中的f是一个匿名函数,它作为第一个参数解析为map函数。f将在代码中的其他地方用以下语法定义
function(value) {
return result.
}
上面示例中的调用代码如下所示
var array = map(function(value) { return result; },[1,2,3,4,5]);
我会在这里阅读匿名函数,这可能会有所帮助。
这里没有递归。除非你以f.no的形式传递
map
,否则递归就在我的脑海中:)在我写的文字中。函数中根本没有递归。只是开个玩笑,但在我看来,“f”是映射函数的参数时,它在这里又是什么呢?@user3259232您可以将函数作为函数的参数发送。是的,没错。您可以在JS中使用type function创建变量,并将它们作为参数传递给所有人以获得帮助!
var array = map(function(value) { return result; },[1,2,3,4,5]);