我编写的代码应该模仿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
。我希望记录下来,&#39; b&#39;然后&#39; c&#39;到控制台。我已确认Array.isArray(testArr)
正在返回true
并且已输入if
块。它是for
循环,我没有正确进入。
有人可以告诉我这个for
循环的错误吗?
答案 0 :(得分:2)
1)错字:legnth
。
2)您无法直接通过console.log
- 会导致Illegal invocation
错误。通过console.log.bind(console)
或匿名函数。
3)undefined
是函数的返回值。