无法理解数组的元素如何传递给函数的参数

时间:2015-07-19 23:50:26

标签: javascript arrays foreach

我有一个我能理解的功能。

function forEach(array, action) {
  for (var i = 0; i< array.length; i++)
    action(array[i]);
}

当我们调用该函数时,我们可以说forEach([1,2,3,4,5], console.log); 该代码将单词action替换为正文中的单词console.log。一切都像一个魅力。对吗?

但在这种情况下使用匿名函数我感到困惑。

var numbers = [1, 2, 3, 4, 5], sum = 0;

forEach(numbers, function(number) { sum += number; });

在这种情况下,我们有一个匿名函数作为参数。匿名函数如何从数组中逐个获取元素,并将其放入其参数(数字)?。

我可以让它更容易理解:

var FindSum = function (number) {
  sum += number;
};

forEach(numbers, FindSum);

但我仍然对论证数字感到困惑。 FindSum函数如何接收数字?

2 个答案:

答案 0 :(得分:2)

它与第一个示例完全相同:

number

所以numbers[i]var numbers = [1,2,3]; var FindSum = function (number) { sum += number; }; forEach(numbers, FindSum); // equals FindSum(1); FindSum(2); FindSum(3);

Route::get('auth/login', ['as' => 'login', 'uses' => 'Auth\AuthController@getLogin']);

Route::get('login', function(){ Redirect::route('login', 301); });
Route::get('authenticate', function(){ Redirect::route('login', 301); });

答案 1 :(得分:1)

var numbers = [1, 2, 3, 4, 5], sum = 0;
forEach(numbers, function(number) { sum += number; });

以非常简单的方式解释:

  1. forEach采用数组(数字)和回调函数(匿名函数,也可以命名)

  2. forEach然后将数字中的每个数字传递给匿名函数

  3. 然后你总结&#34;总和&#34;以及数字的当前值