【发布时间】:2018-05-14 16:05:09
【问题描述】:
这是我过滤掉记录的代码
for (var k = 0; k < $scope.hockeyPlayersId.length; k++) {
var val = $scope.hockeyPlayersId[k];
$scope.filterhockeyPlayers = $scope.Players.filter(function (obj, index) {
var returnVal = true;
if (val) {
if (obj.PlayersId == val)
return 1
else
return 0;
}
return returnVal;
});//End of filter function ;
}
val 包含打曲棍球的玩家的所有 ID。我将 obj 的每个 PlayersId 与 val 进行比较,但如果 $scope.hockeyPlayersId = ['22','12','21'] 然后返回仅包含 21 个 id 的玩家,则 $scope.filterhockeyPlayers 返回错误值。我也想要 22 和 12 的球员。 $scope.filterhockeyPlayers 值在每个 for 循环后丢失。
【问题讨论】:
-
查看输入和预期输出数组会很有帮助。
-
@Randy : $scope.filterhockeyPlayers 的值在每个 for 循环后被擦除,即 k = 0 我有两个相似的播放器,但是当 k 变为 1 时,这两个值被擦除
-
除了代码中的逻辑错误之外,您应该清楚这个赋值:
$scope.filterhockeyPlayers =会导致您丢失数据。但由于您不愿意分享输入数据,因此无法判断还发生了什么。 -
您能否提供
$scope它是什么以及它的属性/方法是什么。还有为什么你在过滤器函数中有returnVal只是返回true 而不是你在改变它?
标签: javascript angularjs filter