繁体   English   中英

返回具有特定属性的数组中的对象

[英]Return object in array with specific property

我写新自己的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变量,因此我可以在视图中调用其属性。

任何帮助,将不胜感激。

谢谢。

您可以使用Array#some ,如果找到则结束迭代

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

移动你的$scope.thisTeam = team; if检查中。

var findTeam = function() {
  $scope.teamDetails.forEach(team) {
     if(team.team_id === $scope.whichTeam) {
         $scope.thisTeam = team;
     }
  }
};
$scope.team = $scope.teamDetails.filter(function (team) {
  return team.team_id === $scope.whichTeam;
})[0];

您需要使用数组的过滤方法。 它创建了与给定谓词匹配的新数组元素(返回布尔值的函数)。 然后你只需要取第一个值。

您也可以使用find ,但尚未在每个浏览器中实现。

它看起来像这样:

$scope.team = $scope.teamDetails.find(function (team) {
  return team.team_id === $scope.whichTeam;
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM