0

私はFCCでこの課題に取り組んでおり、文字通り道半ばです!

コレクション (最初の引数) のすべての要素に対して、述語 (2 番目の引数) が真であるかどうかを確認します。

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」値を渡すためです...

皆さんありがとう!

4

1 に答える 1

2

It's false if falsey for any one of them, so test that. Then if none of them are falsey, return true.

function truthCheck(collection, pre) {
    for(var i = 0; i < collection.length; i++){
        if (!collection[i][pre]) { return false; }
    }
    return true;
}
于 2016-04-11T18:25:52.393 に答える