首页 > 其他分享 >js中循环判断找到满足条件的单项后结束循环

js中循环判断找到满足条件的单项后结束循环

时间:2023-06-17 14:44:18浏览次数:38  
标签:满足条件 false && glkm js 循环 isMeber jzlx

关于跳出循环的详细介绍可以看这篇:https://blog.csdn.net/Code_King006/article/details/130565506

说下自己的业务场景:判断数组中是否有满足条件的套餐,如果有就接着判断下一个条件不再查询后续数组(也就是需要终止当前循环),否则返回false
原本用的是foreach去判断,但这样写显然是有问题的,比如说arr1中的有三个数组,前两个数组满足条件1,最后一个数组不满足条件1,那么isMeber 的值最终就是false;不满足要求( foreach通过return跳出循环无效 ),修改后通过for循环,满足条件后通过break 跳出循环。

 1 function IS_MEBER(e) { 
 2    arr1.forEach(v=>{
 3         if( v.jzlx == userInfo.jzlx && v.glkm == glkm && v.dqsj > timestamp ){ // 条件1
 4            
 5                 arr2.forEach(k=>{ 
 6                     if ( k.xmmc==e || k.xmjs==e ){ // 条件1
 7                         if( k.jzlx == userInfo.jzlx && k.glkmmc == glkm ){ // 条件3
 8                             isMeber = true;
 9                         }
10                     }else {
11                         isMeber = false;
12                     }
13                 })
14                 
15         }else {
16             isMeber = false;
17         }
18    })
19    return isMeber;
20 }


修改后:

 1 function IS_MEBER(e) { 
 2    for (let k = 0; k < arr1.length; k++) {
 3         if( arr1[k].jzlx == userInfo.jzlx && arr1[k].glkm == glkm && arr1[k].dqsj > timestamp ){ // 条件1
 4            
 5                 for (var i = 0; i < arr2.length; i++) { 
 6                     if ( arr2[i].xmmc==e || arr2[i].xmjs==e ){ // 条件1
 7                         if( arr2[i].jzlx == userInfo.jzlx && arr2[i].glkmmc == glkm ){ // 条件3
 8                             isMeber = true;
 9                             break; // 如果找到了满足条件的单项就跳出循环
10                         }
11                     }else {
12                         isMeber = false;
13                     }
14                 })
15                 break;  
16         }else {
17             isMeber = false;
18         }
19    })
20    return isMeber;
21 }

 

其实是很简单的问题,但碰见的时候总是习惯使用foreach,在这里记录一下,警示自己。

标签:满足条件,false,&&,glkm,js,循环,isMeber,jzlx
From: https://www.cnblogs.com/liyulu-light/p/17487473.html

相关文章

  • JSON Web Token 入门教程
     JSONWebToken(缩写JWT)是目前最流行的跨域认证解决方案,本文介绍它的原理和用法。一、跨域认证的问题互联网服务离不开用户认证。一般流程是下面这样。1、用户向服务器发送用户名和密码。2、服务器验证通过后,在当前对话(session)里面保存相关数据,比如用户角色、......
  • python之json和ymal模块
    json和ymal是常用的数据交换格式,ymal可以看做是json的超集。1json格式json(JavaScriptObjectNotation)是一种轻量级的数据交换格式,常用于在不同系统之间进行数据传输和存储。它由键值对构成的集合组成,通常以文件扩展名.json命名。JSON的结构非常简单,有两种基本的数据结构:1.......
  • JS的部分对象
      自定义对象:JSON里的key值必须使用“”,不然会报错 ......
  • Vue.js 组件通信
    学习目录:Vue.js简介Vue.js实例与数据绑定Vue.js计算属性和侦听器Vue.js条件渲染和列表渲染Vue.js事件处理Vue.js表单输入绑定Vue.js组件基础Vue.js组件通信Vue.js插槽Vue.js动态组件和异步组件Vue.js自定义指令Vue.js过渡和动画Vue.js混入Vue.js自定义事件和v-model......
  • js的new做了什么
    new对象底层发生了什么functionPerson(phone,age){this.age=age;this.phone=phone;this.showone=function(){};}Person.prototype.docall=function(){console.log("电话:",this.phone);};letperson=newPerson("12344",23);c......
  • 关于js单线程的问题
    为什么说js是单线程?为了搞清楚这个问题,我们需要先了解这几个问题:什么是线程?什么是进程?他们之间的关系?什么是任务队列(EventQueue),任务分类(宏任务、微任务)?什么是事件循环?为什么说js是单线程?为什么js要是单线程?接下来我们一起来看一下:什么是线程?什么是进程?他......
  • centos8使用Yum安装nodejs步骤方法、nodejs升级切换版本的方法
    先确认系统是否已经安装了epel-release包(EPEL是企业版Linux的额外软件包,是Fedora小组维护的一个软件仓库项目,为RHEL/CentOS提供他们默认不提供的软件包。):Bash#yuminfoepel-release如果有输出有关epel-release的已安装信息,则说明已经安装,如果提示没有安装或可安装,则安装......
  • tween.js简单案例
    ‘init(); animate(); functioninit(){ varoutput=document.createElement('div'); output.style.cssText='position:absolute;left:50px;top:300px;font-size:100px'; document.body.appendChild(output); v......
  • jquery根据json自动生成表格
    <!DOCTYPEhtml><html><head><metacharset="utf-8"><title>导入文件</title><linkrel="stylesheet"href="/js/bootstrap.min.css"><scriptsrc="/js/jquery.min.js&q......
  • java中xml和json转换
    packagecom.lbdz.bsf.util;importnet.sf.json.JSONObject;importnet.sf.json.JSONSerializer;importnet.sf.json.xml.XMLSerializer;/***xml和json转换*/publicclassXMLUtils{/***xml转化为字符串*@paramxml*@returnstr......