迭代收集truthy / falsey值

时间:2015-05-22 16:28:10

标签: javascript loops collections truthiness

我对学校作业有一些出色的要求,应该从一个集合中返回真值/假值。以下是出色的要求:

1)应该通过所有真实结果的集合

2)应该通过一个包含混合truthy / falsy结果的集合

3)应传递包含一个字符串真值的集合

4)应传递包含一个匹配值的集合

5)应该将结果转换为布尔值

6)在没有提供回叫的情况下应该工作

我是Javascript的新手所以我不确定上述所有内容是否都可以在同一个函数中完成,但这就是我阅读作业的方式。以下是我到目前为止的情况:

  myCustomForEach = function(collection, iterator) {
      for(var val in collection){
          if (iterator(collection[val])) {
              return true;
          } else {
              return false;
          }
      }
  };

这是我需要帮助的功能:

 myTruthTest = function(collection, iterator) {
     var result = _.every(collection, iterator);
     if (result) {
         return true;
     } else {
         return false;
     }
 };

我不需要使用自定义forEach,但我不能使用任何内置函数。我是在考虑这个还是我认为这将需要多于1个功能来实现所需的结果?非常感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用内置过滤功能:

var myTruthTest = function(collection, iterator) {
    return !!collection.filter(function(item) {
        return !!item || iterator && iterator(item);
    }).length;
};