我试图在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';
答案 0 :(得分:0)
问题在于empty()
是一个数组,但$scope.shift
是一个字符串。因此,与value.shift_id
的比较并不符合您的预期。
我想你想知道==
中是否有$scope.shift
等于shift_id
的元素。如果是这种情况,您需要遍历数组value.shift_id
,将每个元素$scope.shift
与shift_id
进行比较。
另外,请注意,在每次迭代中,您将覆盖存储在value.shift_id
中的值,因此唯一重要的迭代是最后一次,我怀疑这是您想要的,但是因为它不清楚您希望能够为您提供更好解决方案的代码。