0
FCCにこのチャレンジを行っていますが、私は文字通りその途中です!JavaScriptの真偽判定機能
のコレクション(最初の引数)のすべての要素で述語(第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;
}
すべての「真実」テストが合格するからです。
私は別の方法で '真実性'の評価を受けるべきだと思いますか?私のコードでは、すべての '偽の'値を渡すため、これを言う...
ありがとうございます!
真実はあなたに設定されています – tyler
isNaNを使用しないことから始まります。それはあなたが思っていることをしていません。とにかく「NaN」は馬鹿だ。あなたの配列に偽の値がまったく見つからないという事実は言及しません。 –
おそらく関数の引数として 'pre'が指定されているので、' for(pre in arr) 'を削除するでしょう。 'pre'の与えられた値ではなく、最初のフィールドで真を返します。 – Kenney