双层for循环,拿第几个元素与每一个元素比较,同时索引不等,如果元素相等,就重复,不等就不重复。
性能并不好,不推荐,权当是种思路。
// 校验 进场人员身份证、进场车辆 身份证、车牌号唯一性,不得有重复
vm.uniquenessCheck = function(objArr,keyName,tableRepeatPrompt){
for(var i = 0; i < objArr.length; i++){
for(var j = 0; j < objArr.length; j++){
if(objArr[i][keyName] ==objArr[j][keyName] && i!=j){
toaster.error({title: "提示" , body: tableRepeatPrompt+"列不得有重复!"} );
if(keyName == 'personCardId'){
vm.checkPersonCardIdUnique = false;
return;
}
if(keyName == 'driverCardId'){
vm.checkDriverCardIdUnique = false;
return;
}
if(keyName == 'plateNumber'){
vm.checkPlateNumberUnique = false;
return;
}
}
}
}
}
// 校验唯一性 身份证、车牌号
vm.checkIfRepeat = function(){
vm.checkPersonCardIdUnique = true;
vm.checkDriverCardIdUnique = true;
vm.checkPlateNumberUnique = true;
vm.uniquenessCheck(vm.addPersonData, 'personCardId', "进场人员表格中身份证号");
vm.uniquenessCheck(vm.driverGridData, 'driverCardId', "进场车辆表格中身份证号");
vm.uniquenessCheck(vm.driverGridData, 'plateNumber', "进场车辆表格中车牌号");
if( vm.checkPersonCardIdUnique && vm.checkDriverCardIdUnique && vm.checkPlateNumberUnique){
// 提交测试
}
}