JavaScript 中的真实性检查功能

Truthiness checker function in JavaScript

我正在 FCC 接受这个挑战,我已经完成一半了!

Check if the predicate (second argument) is truthy on all elements of a collection (first argument).

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;
}

所有 'truthy' 测试都通过了。

所以我想我应该以不同的方式评估 'truthtiness'?我这样说是因为我的代码按原样获取了所有要传递的 'falsey' 值...

谢谢大家!

如果其中任何一个为假,则为假,因此请对其进行测试。那么如果其中 none 个是假的,return 个是真。

function truthCheck(collection, pre) {
    for(var i = 0; i < collection.length; i++){
        if (!collection[i][pre]) { return false; }
    }
    return true;
}