循环遍历数组中的每一项,并根据每一项的某个值进行判断 every 、forEach ,some

本文介绍了两种方法来确保在点击按钮时,只有当所有数据项的状态都为'已复核'时才调用接口。方法一是使用Array.prototype.every()遍历数组,如果所有状态都符合要求则请求接口,否则显示错误提示。方法二是使用Array.prototype.forEach()遍历,一旦发现状态不符合要求立即停止遍历并显示错误。这两种方法在前端开发中用于数据校验和接口调用控制。
摘要由CSDN通过智能技术生成

项目需求
要求点击某个按钮时,要是都是 已复核 的状态才会请求接口数据,否则不请求并直接给出错误提示。
如下图:
在这里插入图片描述
方法一

every()是对数组中每一项运行给定函数,如果该函数对每一项返回true,则返回true。

handleReimbursement = async (selectedRowKeys, rows) => {
    const isAllReview = rows.every(row=>row.state === "REVIEW"); // 用every 循环值
    if(!isAllReview){ // 判断如果每一个的状态有一个不是  已复核
      ElNotification({
        type: 'error',
        message: '数据报账状态值不统一,请重新选择。'
      })
     }else{ //每一个的状态都是已复核
      const res = await sycaccount(selectedRowKeys)
      if (res && res.success) {
        ElNotification({
          type: 'success',
          message: res.msg || '操作成功'
        })
        this.tableRef.getTableData()
      } else {
        ElNotification({
          type: 'error',
          message: res.msg || '操作失败'
        })
      }
    }

}

方法二

forEach循环遍历

handleReimbursement = async (selectedRowKeys, rows) => {
  rows.forEach(item => { // 循环遍历返回数组的每一项
   if(item.state !== "REVIEW"){ // 判断每一项的状态值 如果不是 已复核
    ElNotification({
      type: 'error',
      message: '数据报账状态值不统一,请重新选择。'
    })
    return;//在这里 如果有一行不通过 就return 不会走下面的接口了
   }
 });
 const res = await sycaccount(selectedRowKeys)
      if (res && res.success) {
        ElNotification({
          type: 'success',
          message: res.msg || '操作成功'
        })
        this.tableRef.getTableData()
      } else {
        ElNotification({
          type: 'error',
          message: res.msg || '操作失败'
        })
      }
};

some()是对数组中每一项运行给定函数,如果该函数对任一项返回true,则返回true。

 handleReapprove = async (rowKeys, rows) => { // 参数 keys ,rows
    if (rows.some(item => item.state !== 'APPROVED')) { // 如果有一个值满足状态不是已审批
      ElNotification({
        type: 'warning',
        message: '请选择<状态>为全为【已审批】的单据!'
      });
    } else {
      const res = await review(rowKeys)
      this.setState({ passLoading: false, refuseLoading: false })
      if (res && res.success) {
        ElNotification({
          type: 'success',
          message: res.msg || '操作成功'
        })
        this.tableRef.getTableData()
      } else {
        ElNotification({
          type: 'error',
          message: res.msg || '操作失败'
        })
      }
    }
  }
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值