条件不在angular.forEach中工作

时间:2017-11-08 03:20:55

标签: javascript angularjs

我试图在forEach中对两个迭代值进行比较,但它的行为并不像它应该的那样。在所有情况下,尽管有效,但条件仍然满足。 我一直在寻找一些关于它的东西而没有任何东西。 有人能帮助我吗?

 angular.forEach($scope.shifts, function(value, key){
                        if(value.shift_id == $scope.shift){
                            $scope.selectedShift = $scope.shift;
                        }else{
                            $scope.selectedShift = value.shift_id;
                        }                            
                     });

供参考:

$scope.shifts =

[{ "shift_id": "7", "shift_name": "JuanIlario" }, 
 { "shift_id": "31", "shift_name": "Ruperto" } ]

$scope.shift =' 7';

View example code

1 个答案:

答案 0 :(得分:0)

问题在于empty()是一个数组,但$scope.shift是一个字符串。因此,与value.shift_id的比较并不符合您的预期。

我想你想知道==中是否有$scope.shift等于shift_id的元素。如果是这种情况,您需要遍历数组value.shift_id,将每个元素$scope.shiftshift_id进行比较。

另外,请注意,在每次迭代中,您将覆盖存储在value.shift_id中的值,因此唯一重要的迭代是最后一次,我怀疑这是您想要的,但是因为它不清楚您希望能够为您提供更好解决方案的代码。