Функция проверки правдивости в JavaScript
Я прохожу этот вызов в FCC и буквально на полпути!
Проверьте, верен ли предикат (второй аргумент) для всех элементов коллекции (первый аргумент).
function truthCheck(collection, pre) {
// Is everyone being true?
for(var i = 0; i < collection.length; i++){
var arr = collection[i];
for(pre in arr){
if (isNaN(arr[pre]) ){
pre = false;
return pre;
} else if (arr[pre]){
pre = true;
return pre;
}
}
}
}
truthCheck([{"user": "Tinky-Winky", "sex": "male"}, {"user": "Dipsy", "sex": "male"}, {"user": "Laa-Laa", "sex": "female"}, {"user": "Po", "sex": "female"}], "sex");
Во введении я сказал, что был на полпути. Это потому, что когда я сначала оцениваю истинные ценности:
if (arr[pre]){
pre = true;
return pre;
}
все "правдивые" тесты пройдены.
Таким образом, я полагаю, что меня следует оценивать на "правдивость" по-другому? Я говорю это потому, что мой код как есть получает все значения 'falsey' для передачи...
Спасибо всем!
1 ответ
Решение
Это неверно, если фальсифицирует любого из них, так что проверьте это. Тогда, если ни один из них не ложный, верните истину.
function truthCheck(collection, pre) {
for(var i = 0; i < collection.length; i++){
if (!collection[i][pre]) { return false; }
}
return true;
}