在leetcode上刷题的时候踩的坑,题目是这样的
简单思考了一下,用最简单的双循环就可以解决问题,于是习惯性用forEach遍历了两次
结果发现函数返回值是undefined
百度了一下,发现是因为forEach多次执行回调函数,回调函数中使用return没法直接终止forEach,只能终止单次的回调。所以return语句在forEach内部是无法跳出循环的。
解决方案:
1.方案一:js针对数组操作的另外两个方法some()与every()
2.方案二:for/while语句老实循环
总结原因还是对forEach方法理解不够到位
break结束循环推荐使用。
return 直接跳出方法。
js中的break 、continue,、return
break语句会使运行的程序立刻退出包含在最内层的循环或者退出一个switch语句。
由于它是用来退出循环或者switch语句,所以只有当它出现在这些语句时,这种形式的break语句才是合法的。
continue语句和break语句相似。所不同的是,它不是退出一个循环,而是开始循环的一次新迭代。
continue语句只能用在while语句、do/while语句、for语句、或者for/in语句的循环体内,在其它地方使用都会引起错误。
return语句就是用于指定函数返回的值。
return语句只能出现在函数体内,出现在代码中的其他任何地方都会造成语法错误,当执行return语句时,即使函数主体中还有其他语句,函数执行也会停止。