我编写的代码应模仿Underscores的_.each
方法的功能。但是,有了我现在的代码...
var testArr = ['a','b','c'];
var eachFunc = function(collection, iterator) {
if (Array.isArray(collection)) {
for (var i = 0; i < collection.legnth; i++ ) {
iterator(collection[i]);
}
}
else {
for ( var property in collection ) {
iterator(collection[property]);
}
}
};
console.log(eachFunc(testArr, console.log));
我只返回
undefined
。我希望将“ a”,“ b”然后“ c”登录到控制台。我已验证Array.isArray(testArr)
返回true
并且已输入if
块。我没有正确进入for
循环。有人可以告诉我我
for
循环在做什么吗? 最佳答案
1)错字:legnth
。
2)您不能直接传递console.log
-这会导致Illegal invocation
错误。传递console.log.bind(console)
或匿名函数。
3)undefined
是函数的返回值。
关于javascript - 有条件地遍历数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35207052/