nodeschool javascripting 数组过滤

nodeschool javascripting ARRAY FILTERING

var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var filtered = numbers.filter(function evenNumbers (number) {
  return number % 2 === 0;
});

console.log(filtered);

我完全是 JavaScript 的初学者,选择了 nodeschool 提供的课程。在 "ARRAY FILTERING" 的练习中,我想知道 'number' 在函数 evenNumbers 中的作用是什么,因为它没有事先声明。

声明的,作为回调 evenNumbers 的正式参数(一个接受参数并测试它是否为偶数的函数)。 filter 将为数组 numbers 的每个元素调用一次回调函数,将元素作为参数提供给回调(它将通过通常的函数调用过程将其分配给 number ).

  1. numbers 是一个数组
  2. .filter 是在 Array.prototype
  3. 上声明的方法
  4. .filter 方法接受 callback function.
  5. 内部看起来像,

,

Array.prototype.filter(callback[, thisArgs]) {
    '''''
    '''''
    callback(currentElement, index, arrayObjectBeingTraversed)
}); 

所以,

在你的情况下,

callback  --> function evenNumbers() {}

currentElement --> Number

More about Javascript Callback Functions