有条件地遍历一个数组

时间:2016-02-04 17:00:31

标签: javascript arrays for-loop underscore.js

我编写的代码应该模仿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循环的错误吗?

1 个答案:

答案 0 :(得分:2)

1)错字:legnth

2)您无法直接通过console.log - 会导致Illegal invocation错误。通过console.log.bind(console)或匿名函数。

3)undefined是函数的返回值。