2016-05-19 11 views
1

私は自分自身のJS関数を書くのがかなり新しいです。私はこの問題に苦労しています。特定のプロパティを持つ配列のオブジェクトを返す

オブジェクトの配列を実行し、特定のIDに一致するオブジェクトを見つけて、そのオブジェクトを返したいとします。

今のところ、これは私が持っているものです。

var findTeam = function() { 
    $scope.extraTeamData.forEach(team) { 
    if(team.team_id === $scope.whichTeam) { return team } 
    } 
    $scope.thisTeam = team; 
}; 

$scope.teamDetailsは私の配列で、$scope.whichTeam変数は、私は反対チェックしています正しいIDを保持しています。

最終的には、関数の結果のオブジェクトを$scope.thisTeam変数に割り当てることができるように、ビューでそのプロパティを呼び出すことができます。

ご協力いただければ幸いです。

ありがとうございました。

+0

を1つの結果だけはありますか? –

+0

現在の実装でどのような問題が発生しているか教えてください。 – smaili

+0

'return team'の代わりに、' $ scope.thisTeam = team; 'を実行するだけです。 –

答えて

1

$scope.thisTeam = team;ifに移動してください。

var findTeam = function() { 
    $scope.teamDetails.forEach(team) { 
    if(team.team_id === $scope.whichTeam) { 
     $scope.thisTeam = team; 
    } 
    } 
}; 
2

あなたは

var findTeam = function() { 
    $scope.extraTeamData.some(function (team) { 
     if (team.team_id === $scope.whichTeam) { 
      $scope.thisTeam = team; 
      return true; 
     } 
    }); 
}; 
+0

これを私のコントローラーにAngularで入れて、機能を完全に破った。 : – Paulos3000

+0

スクラッチ、間違ったコンマはまだ私のビューで何も戻っていません... – Paulos3000

+0

オハイ、何がエラーですか? –

0
$scope.team = $scope.teamDetails.filter(function (team) { 
    return team.team_id === $scope.whichTeam; 
})[0]; 

たあなたは、配列のfilter方法を使用する必要がある場合は、反復を終了するArray#someを使用することができます。与えられた述部(ブール値を返す関数)に一致する新しい配列要素を作成します。それから、最初の価値を取るだけです。

findも使用できますが、まだすべてのブラウザに実装されていません。

それはこのようなものになります。

$scope.team = $scope.teamDetails.find(function (team) { 
    return team.team_id === $scope.whichTeam; 
}); 
関連する問題