js if else 条件判断优化
说明:代码块,用于表单提交前对数据校验使用。
优化前,代码判断比较繁琐。
// 添加校验 if (generateType.value === '0' && num.value === 0 || score.value === 0 ) { message.warning('请设置AAA') return }else if (generateType.value === '1') { if (selectedPaperQuestions.value.length ===0) { message.warning('请设置B') return } else { if (isExistNotSetScorePaperQuestion()) { message.warning('请设置BBB') return } } } else if (generateType.value === '2' && num.value > 1) { message.warning('请设置CCC') return }
尝试进行代码优化
let paperRule = { 0:{'dataValid':()=>num.value === 0 || score.value === 0,'msg':'请设置试题或试题分值'}, 1:{'dataValid':()=>isExistNotSetScorePaperQuestion(),'msg':'请设置试题或试题分值'}, 2:{'dataValid':()=>num.value > 1,'msg':'***,只能选1道题'} } // 添加校验 if (paperRule[generateType.value].dataValid()) { message.warning(paperRule[generateType.value].msg) return }
/**是否存在未设置明细项成绩的试题 */
const isExistNotSetScorePaperQuestion = ()=>{
return selectedPaperQuestions.value.length ===0 || questionDetailScoresMap.size !== selectedPaperQuestions.value.length ;
}
优化后,代码一下子简约了好多。
但仍有不足之处,未实现原有的 if (selectedPaperQuestions.value.length ===0) 分支判断。
浙公网安备 33010602011771号