0
我有一個要求,添加新的對象到一個現有的對象數組,其中不允許重複的對象的唯一性是基於對象的所有屬性。所述對象包含屬性: 1. DepartmentID的 2. equipmentId 3. sectionId 4.服務Id_.findWhere()沒有給出屬性值的結果undefined
根據我的要求,equipmentId是一個可選字段,即當存在用於它沒有值可能是未定義的。我下面寫的那樣:
$scope.isDuplicateRecord = function(){
var dupCheck = _.findWhere($scope.equipmentServiceMaps,{departmentId:$scope.equipmentServiceMap.department.departmentId,
equipmentId:$scope.equipmentServiceMap.equipment.equipmentId,
sectionId:$scope.equipmentServiceMap.section.sectionId,
serviceId:$scope.equipmentServiceMap.service.serviceId})
if(dupCheck== undefined){
return false
}else{
return true
}
}
此代碼工作正常與quipmentId的所有值除了不確定的,即如果以相同的DepartmentID的,sectionId,服務Id和equipmentId爲未定義的現有對象。它沒有找到該對象並返回undefined因此我的檢查失敗。
當我更改爲基本for循環的代碼時,它工作,但我想繼續使用下劃線。下面是我的解決方法的代碼與循環,
var dupCheck = undefined;
for(var i = 0; i < $scope.equipmentServiceMaps.length; i++){
if($scope.equipmentServiceMaps[i].departmentId == $scope.equipmentServiceMap.department.departmentId
&& $scope.equipmentServiceMaps[i].sectionId == $scope.equipmentServiceMap.section.sectionId
&& $scope.equipmentServiceMaps[i].serviceId == $scope.equipmentServiceMap.service.serviceId
&& $scope.equipmentServiceMaps[i].equipmentId == ($scope.equipmentServiceMap.equipment? $scope.equipmentServiceMap.equipment.equipmentId : undefined)){
dupCheck = $scope.equipmentServiceMaps[i];
console.log(dupCheck);
break;
}
}
if(dupCheck == undefined){
return false
}else{
return true
}
請建議我怎麼能繼續與underscore.js