Итерация коллекции для истинных / ложных значений
У меня есть некоторые выдающиеся требования к школьному заданию, которые должны возвращать истинные / ложные значения из коллекции. Вот выдающиеся требования:
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;
};