var citys={bj:100,sh:200,gz:3000}; citys.forEach(function(key){ console.log(key); if(key=='sh'){ break; } });
`SyntaxError: Illegal break statement
用下边的代替吧
for(var key in citys) { if (key == 'sh') { break; } }
有回调函数,明显就不行了
forEach的callback是个函数,应该用return
用数组的some或every
你的目的是什么?
试试 Underscore 的 find、some ?
检查每一个配置项,如果发现有一个不符合规则,就退出检查流程
return false;
list.forEach(function(o){ …
return false; // stop for
})
这样是stop不了的,后面的item还是照样会被iterate
@yakczh 用数组的some或every函数就行了
这是个陷阱 要相关这个编程思维了
面向过程和函数式的区别么…
break是用在for语句中的,forEach函数和for语句差距很大。
break
这个我前段时间 也遇到过 发现break后面的还是会执行 就老老实实用for遍历了
其实压根就不是Node的问题,而是es5里面就不支持array的forEach的break 直接改every就可以了
jquery 的 each 就好多了