중복이 허용되지 않고 개체의 고유성이 개체의 모든 속성을 기반으로하는 기존 개체 배열에 새 개체를 추가해야한다는 요구 사항이 있습니다. . 개체 속성을 포함 1. 2. 내 요구 사항에 따라 4. 서비스 id_.findWhere()가 속성 값에 대한 결과를 지정하지 않았습니다. 정의되지 않음
sectionId 3. equipmentId departmentId, equipmentId는 대한 값이 없을 때 정의되지 않을 수 있습니다 선택 필드 즉이다. 나는 그것을 아래 쓴 : 같은 departmentId, 정의와 같은 sectionId, 서비스 id와 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의 모든 값, 즉 잘 작동한다. 그것은 그 객체를 찾지 못해서 내 검사가 실패했기 때문에 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