判断区间规则大于、小于、区间 有没有交集

在项目做表格编辑的时候,选择弹框里面的类型,会出现大于、等于、小于三种情况,在点击确定的时候,不能让输入的分数大于分-max,并且输入的类型数值不能有交集的情况

思路:两个区间,两者的最小值中的最大值 <= 两者最大值的最小值时 就存在交集

有了思路剩下的就是代码实现的过程,这个时候可不得不想到gpt这个伟大的发明啊,下面贴图gpt给我的代码实现过程,嘻嘻嘻😁

下面是我根据项目改的代码,废话不多说,直接上代码!

// 对比是否有交集 没有交集返回true
function checkintersection(arr) {
  for (let i = 0; i < arr.length; i++) {
    for (let j = 0; j < arr.length; j++) {
      if (i !== j) {
        if (arr[i].min < arr[j].max && arr[i].max > arr[j].min) {
          return '区间规则第' + (i + 1) + '行和' + (j + 1) + '行数值有冲突' // 有交集
        }
      }
    }
  }
}

  //checkObj.value.intervalList 为区间规则的表格 numberValue:输入框的起初值 endNumberValue:输入框的末值
const submitcheckForm = (formEl) => {
	formEl.validate((valid, fields) => {
		if (valid) {
        // 先判断为区间类型时
      if (checkObj.value.Type === 2) {
        const checklist = []
        checkObj.value.intervalList.forEach((item) => {
            //判断表格类型为大于
          if (item.intervalType === 1) {
            // 当为大于时
            checklist.push({ min: item.numberValue, max: checkObj.value.maxScore })
          } else if (item.intervalType === 2) {
            // 当为区间时
            checklist.push({ min: item.numberValue, max: item.endNumberValue })
          } else {
            // 当为小于时
            checklist.push({ min: 0, max: item.numberValue })
          }
        })
        let checkintersectionFlag = checkintersection(list)
        if (checkintersectionFlag) {
          ElMessage.error(checkintersectionFlag)
          return false
        }
      }
		} else {
			console.log('error submit!', fields)
		}
	})
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值