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);
}