Итерация коллекции для истинных / ложных значений

У меня есть некоторые выдающиеся требования к школьному заданию, которые должны возвращать истинные / ложные значения из коллекции. Вот выдающиеся требования:

1) Должен сойти за коллекцию всех достоверных результатов

2) Должен сойти за коллекцию, содержащую смешанные правдивые / ложные результаты

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 ответ

Вы можете использовать встроенную функцию фильтра:

var myTruthTest = function(collection, iterator) {
    return !!collection.filter(function(item) {
        return !!item || iterator && iterator(item);
    }).length;
};
Другие вопросы по тегам