【发布时间】:2012-06-27 22:49:30
【问题描述】:
numbers = [1,2,3,4,5,4,3,2,1];
var filterResult = numbers.filter(function(i){
return (i > 2);
});
我不明白这是如何工作的。如果我省略 i 作为函数参数,它会破坏函数,但 i 不绑定到任何东西,为什么它需要在那里?
【问题讨论】:
-
所以过滤器函数使用 i 作为传递数字索引处的值的一种方式? javascript 去获取每个元素,我只需要告诉它如何处理 i?
-
简单来说:如果您在数组上调用 filter(),JavaScript 会获取该数组的每个值并调用您指定的函数(在本例中为
function(i) { return (i > 2); }并调用该函数,传递作为该函数的参数处理的当前值。由于您将函数接受的第一个参数命名为“i”,因此您现在可以在该函数中使用变量 i。如果它返回“true”,则value 将在 filter() 返回的新数组中,如果返回“false”,将被跳过。这样,您可以轻松“过滤”一个数组。 -
另请参阅下面 Hamish 的回答,有一个很好的解释!
-
谢谢大家,我在学校大部分时间都在编写 c++ 代码,所以不必手动完成所有事情的想法让我有点震惊
标签: javascript filter