この記事は angularjs.foreach を使用する際の return の使い方に関するものです。必要な方は参考にしていただければ幸いです。
配列オブジェクトにオブジェクトがあるかどうかを確認する比較を記述すると、存在する場合は true が返され、失敗した場合は false が返されます。終了メソッドがないことがわかり、自分でテストしました。
最初の書き込み 次に、angularjs の forEach メソッドを使用して配列オブジェクトを循環的に比較し、2 という名前のオブジェクトがある場合は true を出力し、それ以外の場合は false を出力して返します。最初は、 value.name = が見つかった = 2 要素の場合、メソッドは直接リターンするので、1 パスだけを出力し、テストに true をパスしてプログラムを終了する必要があると考えていましたが、出力結果は次のようになります。
forEach の return は、実際には for ループ内での continue の役割だけを果たしていることがわかります。
次に、その戻り値を出力します。 forEach ループと実行関数の戻り値:
forEach 関数はループされた配列と戻り値を返します。これは、forEach の return が機能せず、Continue としてのみ機能することを意味します。 オンラインで検索しましたが、理由の説明がありません。
解決策: を使用します。結果を一時変数に格納し、条件が同じ場合に結果を true に変更します:
self.test = function() { var testArray = [{name: 1},{name:2},{name:3}]; angular.forEach(testArray, function(value, key){ if (value.name == 2) {console.log(true + ' pass the test');return;} console.log(value.name + ' pass'); }); console.log(false + ' pass the test'); return false; }();
では正しい戻り値が得られますが、この方法では、forEach のループを防ぐことはできません。配列要素を走査して何らかの操作を行うには、forEach を使用する必要があると思います。for ループの方が優れています。
以上がangularjs.foreachを使用するときにreturnを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。