Egret社区
1银子
[mw_shl_code=applescript,true]let f1 = function( ) {
  let v1=[1,2,3,4,5]
  v1.forEach(e => {
    console.log(e)
    if(e ==2 ) return
   
  })
}
f1()[/mw_shl_code]


被坑示例


居然输出

  • 1
  • 2
  • 3
  • 4
  • 5





最佳答案

查看完整内容

这种不应该用foreach,用some [mw_shl_code=javascript,true]let v1=[1,2,3,4,5] v1.some(e => { console.log(e) if(e ==2 ){ return true } return false })[/mw_shl_code]
分享到 :
0 人收藏

13 个回复

倒序浏览
ventwang  登堂入室 | 2017-4-20 11:29:29
这种不应该用foreach,用some
[mw_shl_code=javascript,true]let v1=[1,2,3,4,5]
v1.some(e => {
    console.log(e)
    if(e ==2 ){
       return true
    }
    return false
  })[/mw_shl_code]
ziwn_vip  炉火纯青 | 2017-4-20 11:30:21
前面的·也是打印出来的?
nodep  渐入佳境 | 2017-4-20 11:33:35
没看出来bug在哪里哦,这里的return不是你想的那样的吧。作用域不一样。
xyx3310  登堂入室 | 2017-4-20 11:34:22
e=>{
return
}不是返回foreach ,输出是对的
jet66  圆转纯熟 | 2017-4-20 11:42:51
那这里return  到哪里去了??????????
jet66  圆转纯熟 | 2017-4-20 11:43:27
不是bug, 是新手一下子用了之后容易被坑


但不知道原因为啥
pyphehe  登堂入室 | 2017-4-20 11:57:04
你这种写法是对数组中的每个对象依次调用回调函数。
return只是回调函数的return,并不会终止对数组的遍历。
我一般比较喜欢这么写:
for(let e of v1)
{
    console.log(e)
    if(e === 2 ) break;
}
yjtx  官方团队 | 2017-4-20 12:03:44
这个不是bug,是 foreach 里函数是对单项操作的,不是break
gamedaybyday  初窥堂奥 | 2017-4-21 10:25:56
这哪是坑呀,是你不会用啊... ....
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部