[JavaScript]for循环里的return可以终止遍历,forEach里的return不能终止遍历
更细节的内容可以在MDN中学习: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
for循环里的return可以终止遍历,forEach里的return不能终止遍历
在个人实践中多次遇到这个问题,今天是在验证日麻手牌每种牌不多于4个的时候遇到的。
解决方法1:使用基本的for( ; ; )循环
var count = [0, 0, 0, 0, 14, 0, 0, 0, 0] for (var i = 0; i < count.length; i++) { console.log('count item: ', count[i]) if (count[i] > 4) { // array.foreach里面不能用return,这个地方可以用for循环 return { carddict: carddict, num: 0, err: '牌数量错误!单种牌不得多于4张!' } } }
解决方法2:先声名一个变量,在遍历到有问题的地方给这个变量赋值,遍历之后返回这个变量
var msg = null // 验证杠牌是4张 if (gangcards.num > 0) { for (i in gangcards.carddict) { console.log(gangcards.carddict[i]) gangcards.carddict[i].forEach(function (item) { // console.log('check gangcards item ------> ', handcards_count[i][item-1]) if(handcards_count[i][item - 1] !=4){ console.log('杠牌输入不合法:' + item + i) // array.foreach里面不能用return,这个地方用变量取出来 msg = '杠牌输入不合法:' + item + i } }) } } return msg
做一记录,如标题。
*-*-*-*-*-*-*-*-*-*-*-*
扩展:
1. 函数 return 只能返回一个值,如果逗号隔开多个值,则返回最后一个值。
var fn3 = function(){ return 1, 2, 3 } console.log('fn3 return: ', fn3()) // fn3 return: 3
2. 函数没有写 return,则返回 undefined。
3. break, continue, return 的区别
break | 结束当前的循环体(for, while等) |
continue | 跳出当前循环,继续执行下次循环(for, while等) |
return |
不仅可以退出循环,还能够返回return语句中的值, |
分类:
前端 / JavaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)