以下Javascript代码的说明

时间:2014-02-03 15:33:17

标签: 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;
}

特别是,这一行“result [i] = f(a [i]);”

来自Mozilla: 将函数作为参数传递给另一个函数时,函数表达式很方便。以下示例显示了正在定义的映射函数,然后使用匿名函数作为其第一个参数

进行调用

你能帮忙解释一下吗?

这是一个供参考的链接。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions

2 个答案:

答案 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