首页 > 其他分享 >js中foreach循环无法通过return返回

js中foreach循环无法通过return返回

时间:2023-04-28 11:55:29浏览次数:31  
标签:bills return tenCount else foreach false js fiveCount

var lemonadeChange = function(bills) {
  let fiveCount = 0
  let tenCount = 0
  bills.forEach(element =>{
    if(element === 5){
      fiveCount += 1
    }else if(element === 10){
      if(fiveCount >= 1){
        fiveCount -= 1
        tenCount += 1
      }else{
        return false
      }
    }else if(element === 20){
      if(tenCount >= 1 && fiveCount >=1){
        tenCount -= 1
        fiveCount -= 1
      }else if(fiveCount >=3 ){
        fiveCount -= 3
      }else{
        return false
      }
    }
  })
  return true
};

console.log(lemonadeChange([10,5])) //true

按照正常的逻辑,数组第一个数为10时,判断到elemetn为10且fiveCount < 1这时候应该直接返回false了,但程序已经在正常执行,等执行完了所有循环后执行了return true的代码所以得到的结果为true。

而是用for循环时

let fiveCount = 0
let tenCount = 0
for (let i = 0 ; i < bills.length ; i++){
  if(bills[i] === 5){
    fiveCount += 1
  }else if(bills[i] === 10){
    if(fiveCount >= 1){
      fiveCount -= 1
      tenCount += 1
    }else{
      return false
    }
  }else if(bills[i] === 20){
    if(tenCount >= 1 && fiveCount >=1){
      tenCount -= 1
      fiveCount -= 1
    }else if(fiveCount >=3 ){
      fiveCount -= 3
    }else{
      return false
    }
  }
}
return true

当程序执行到return时就会打断后续的循环不再执行。

总结:foreach中不能通过return来打断循环

标签:bills,return,tenCount,else,foreach,false,js,fiveCount
From: https://www.cnblogs.com/Zyatoer/p/17361717.html

相关文章

  • GMaps.js:让你快速集成 Google Maps 服务的 jQuery 插件
    GMaps.js功能除了添加指定经纬度的标准地图之外,GMaps.js还能定义地图放大的级别,添加标注,获取当前用户的地理位置(HTML5geolocation),定义路线,绘制折线,并且实现这些功能只需要简单的几行代码。另外GMaps.js每个动作都有callback函数让你去集成自定义事件。目前GMaps.js没有详......
  • 【HarmonyOS】【JS】Tabs如何设置区分TabBar和TabContent的分割线不显示
    【关键字】Tabs,分割线 【问题描述】使用JS开发HarmonyOS应用时,使用Tabs组件,默认自带TabBar和TabContent的蓝色分割线,由于蓝色分割线样式不可设置,若不想要此蓝色分割线,如何去除蓝色分割线? 【问题分析】1、若JS使用Tabs,蓝色分割线为组件自带样式,暂不支持属性支持显示与隐藏......
  • Python关于jsonpath路径里面包含中文或进行参数化的解决方案
    jsonpath路径包含中文当jsonpath路径包含中文时,我们只需要在jsonpath路径里面把中文用引号包裹即可准备json文件{"data":[{"Details":[{"姓名":"张三"}]}......
  • jquery.liMarqee.js无缝滚动的使用问题
    引入jq、liMarquee.js和liMarquee.css文件<scriptsrc="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script><scriptsrc="./js/jquery.liMarquee.js"></script><linkrel="stylesheet&quo......
  • Dynamic crm 使用JS 更新BPF的stage。
    functionupdateProcess(CurrentRecordId,stageId){ 'usestrict'; varfetchXml=  '<fetch>'+  " <entityname='new_approval_process'>"+  "  <attributename='businessprocessflo......
  • 【策略设计模式详解】C/Java/JS/Go/Python/TS不同语言实现
    简介策略模式(StrategyPattern)属于行为型设计模式。将每一个算法封装到具有共同接口的独立类中,根据需要来绑定策略,使得具体实现和策略解耦。当你想使用对象中各种不同的算法变体,使用if...else所带来的复杂和难以维护,可使用策略模式。或者当有许多相同类,它们仅在执行某些行为时......
  • JSP_4.25_课堂笔记
    一、JSP内置对象JSP可以充当后端,后端可以接受前端的请求参数,同时也可以给前端回应数据。这些操作需要通过JSP的内置对象来完成。1.out内置对象:输出数据到当前网页中。JSP充当前端使用out.println(“xxxx”);2.request内置对象:接受前端的请求参数等操作request.setChara......
  • js获取服务器端时间
    平常获取时间一般都是用newDate()来获取时间,但有时不能直接这么做,因为这样得到的仅仅是客户端的时间,这个是可以随意更改的,而且也跟时区有关,不同时区得到的时间也不一样。像某些场合,比如商品优惠的时间是依据后台服务器的时间的。这里暂时有两种方法去获取:方法1:jqueryfunctiong......
  • Fastjson反序列化漏洞
    Fastjson反序列化漏洞目录Fastjson反序列化漏洞一、Fastjson介绍1、什么是fastjson?2、fastjson的优点二、影响范围:三、漏洞原理四、漏洞利用五、漏洞发现六、漏洞修复一、Fastjson介绍1、什么是fastjson?fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Ja......
  • js javascript js隐藏页面上有id的控件,隐藏页面上无控件包含的文字,控制页面控件属性
    1.隐藏页面上有id的控件varinput=document.getElementsByTagName("input");//获取页面所有inputfor(vari=0;i<input.length;i++){if(input.item(i).id.indexOf("txt")>=0)//判断input的id中是否包含txt字符串{......