因此,基本上我需要使用我在filter函数中实现的每个函数,以便filter函数仅返回大于2的myArray中的项。im完全卡住了。
var myArray = [1, 2, 3, 4, 5];
function each(collection, callback) {
for (var i = 0; i < collection.length; i++) {
callback(collection[i]);
}
}
function filter(collection, test) {
var returnAr = [];
for (var i = 0; i < collection.length; i++) {
if (test(collection[i])) {
returnAr.push(collection[i])
}
}
//instead of using "for(var i = 0; i < collection.length; i++)"
// how can i use the each function i implemented above?
return returnAr;
}
filter(myArray, function(n) {
return n > 2;
}
该each
函数通过将数组中的每个项目作为函数参数传递来调用其回调。因此,正确的调用方式是:
each(collection, function(item) {
if (test(item)) {
// ...
}
}
Javascript并没有提供一种很好的自记录方式来指定函数签名[1]。通常,这可以通过阅读API文档来解决。但是,如果这是您自己的代码,并且没有提供API文档,那么您需要查看如何调用回调。在这种情况下,它称为:
callback(collection[i]);
这就告诉我们回调函数应该接受一个参数,该参数是数组中的一个项目。
[1]:也称为原型,不,不是在javascript的“ prototype”一词中,而是在C的“ prototype”一词中
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句