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
).
numbers
是一个数组
.filter
是在 Array.prototype
上声明的方法
.filter
方法接受 callback function
.
- 内部看起来像,
,
Array.prototype.filter(callback[, thisArgs]) {
'''''
'''''
callback(currentElement, index, arrayObjectBeingTraversed)
});
所以,
在你的情况下,
callback --> function evenNumbers() {}
currentElement --> Number
More about Javascript Callback Functions
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
).
numbers
是一个数组.filter
是在Array.prototype
上声明的方法
.filter
方法接受callback function
.- 内部看起来像,
,
Array.prototype.filter(callback[, thisArgs]) {
'''''
'''''
callback(currentElement, index, arrayObjectBeingTraversed)
});
所以,
在你的情况下,
callback --> function evenNumbers() {}
currentElement --> Number