0

コレクションから真実/偽の値を返す必要がある学校の課題について、いくつかの未解決の要件があります。未解決の要件は次のとおりです。

1) すべての真実の結果のコレクションに合格する必要があります

2) 真/偽の結果が混在するコレクションには合格する必要があります

3) 1 つの文字列の真の値を含むコレクションを渡す必要があります

4) 一致する値を 1 つ含むコレクションに合格する必要があります

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 を使用する必要はありませんが、組み込み関数は使用できません。私はこれを考えすぎているのでしょうか、それとも、必要な結果を得るために複数の関数が必要になると考えるのは正しいでしょうか? 大変助かりました。

4

1 に答える 1

0

組み込みのフィルター関数を使用できます。

var myTruthTest = function(collection, iterator) {
    return !!collection.filter(function(item) {
        return !!item || iterator && iterator(item);
    }).length;
};
于 2015-05-22T16:35:45.043 に答える