当前位置: 首页 > news >正文

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

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

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 || '操作失败'
        })
      }
    }
  }

相关文章:

  • 杭电 1231 最大连续子序列
  • 实例,用computed 计算属性,来进行全选和反选
  • 当div自适应的高度超过预设的高度的时候出现滚动条的办法
  • 浮动相关
  • 利用computed计算属性写购物车商品计算价格 (会用到数组的方法reduce做聚合操作)
  • Slate中绑定动态数据
  • filter过滤含义 以及 操作实战项目todolist
  • 编译安装nginx
  • Vue 跨组件传参 (1.事件总线eventBus,2.vuex)实现购物车
  • 阿里云机器学习8月特别推荐
  • [工具]json转类
  • 数据请求一个数组,向数组里push新增内容
  • iOS - MVP 架构模式
  • <component :is=“动态组件“></component>
  • 大数据解决方案如何满足零售行业进销存数据的实时性存储与更新
  • python3.6+scrapy+mysql 爬虫实战
  • 3.7、@ResponseBody 和 @RestController
  • Date型的使用
  • ES6之路之模块详解
  • gops —— Go 程序诊断分析工具
  • Java IO学习笔记一
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • JavaScript 基本功--面试宝典
  • JS 面试题总结
  • JS变量作用域
  • MySQL-事务管理(基础)
  • React+TypeScript入门
  • REST架构的思考
  • ubuntu 下nginx安装 并支持https协议
  • Windows Containers 大冒险: 容器网络
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 记录一下第一次使用npm
  • 记一次用 NodeJs 实现模拟登录的思路
  • 判断客户端类型,Android,iOS,PC
  • 普通函数和构造函数的区别
  • 前端性能优化——回流与重绘
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 学习HTTP相关知识笔记
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • #### go map 底层结构 ####
  • (13)Hive调优——动态分区导致的小文件问题
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (C++20) consteval立即函数
  • (C语言)逆序输出字符串
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (三)终结任务
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (转)linux下的时间函数使用
  • (转)Scala的“=”符号简介
  • (转载)利用webkit抓取动态网页和链接
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复