2017.08.18

2017-08-18  本文已影响0人  zhezhang

问题

JS中foreach语义中希望使用break打断循环失败。

JS中Foreach为什么不能break?如何实现Foreach中的break语义?

思路

Q1:Foreach中使用break为什么会报错?

A1:Foreach的语法是

Array.Foreach(function,[thisObj]);

它只是个Array的方法,不是真正的循环体,所以不能在Function的函数体内使用braak或者return来实现打破循环。


Q2:JS中怎么使用break?

A2:经过测试,老老实实写for循环体是可以使用break的,完全没问题,只是写起来很麻烦。


Q3:有没有简单好写的语法在js中使用break?

A3:可以使用for-in语句:

for (var index in myArray) { // 不要真的这样写

console.log(myArray[index]);

}

但是这样写有若干问题:比如index是字符串,而不是数值;另外,这个循环会以随即顺序遍历数组。

Q4:更好的语法:for-of

A4:这个语法和C++11支持的的for(auto i: Array)语法一样:

for (var value of myArray) {

console.log(value);

}

上一篇下一篇

猜你喜欢

热点阅读