web-dev-qa-db-ja.com

lodash.js _.eachループを停止する方法は?

私はこの行コードを持っています:

_.each($scope.inspectionReviews, function (value, key) {
    alert("status=" + value.IsNormal + "   " + "name=" + value.InspectionItemName);
    if (!value.IsNormal) {
        $scope.status = false;
        return;
    }
    $scope.status = true;
})

ある時点でループを停止したいのですが、リターンが機能していないようです。

ループを停止するにはどうすればよいですか?

47
Michael
return false;

これをそれぞれダッシュで使用して、破壊します。

編集:タイトルがアンダースコアに変更されたのを見ました。それはアンダースコアですか?上記で指摘したように、それぞれをダッシュ​​で区切ることができますが、ネイティブではそれを提供しないforEachをエミュレートすると思います。

92
AtheistP3ace
  • falseを返す => break;を使用した場合とまったく同じ効果があります。

  • return =>これはcontinue;を使用するのと同じです

18
jack wu

特定の条件がコレクションのメンバーのいずれかに当てはまるかどうかをテストする場合は、eachの代わりに、アンダースコアの some (別名エイリアス any )を使用します。

var hasAtLeastOneFalseStatus = _.any($scope.inspectionReviews, function (value, key) {
    return !value.IsNormal;
})

$scope.status = hasAtLeastOneFalseStatus ? false: true;
3
ncksllvn