我是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;
}
特别是,这一行“result [i] = f(a [i]);”
来自Mozilla: 将函数作为参数传递给另一个函数时,函数表达式很方便。以下示例显示了正在定义的映射函数,然后使用匿名函数作为其第一个参数
进行调用你能帮忙解释一下吗?
这是一个供参考的链接。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions
答案 0 :(得分:1)
这段代码适用于数组“a”函数“f”的每个元素,并返回数组“result”,其中包含“a”中每个元素的运行函数“f”的结果。
对不起,我有一个递归:)
实际上可以这样使用:
var array = map(function(val){ return val + 1; },[1,2,3,4,5]);
并在“数组”中您将拥有以下值:
[2,3,4,5,6]
答案 1 :(得分:0)
result[i] = f(a[i]);
result是一个数组,并且索引i处的元素被赋予函数调用的结果,该函数调用取参数a [i]。
上面一行中的是一个匿名函数,它被解析为map函数作为第一个参数。 f将使用以下语法在代码中的其他位置定义
function(value) {
return result.
}
上面示例的调用代码看起来像。
var array = map(function(value) { return result; },[1,2,3,4,5]);
我会在这里阅读匿名函数,这可能有所帮助。 http://en.wikibooks.org/wiki/JavaScript/Anonymous_Functions