問題
JS中foreach語義中希望使用break打斷循環(huán)失敗肖粮。
JS中Foreach為什么不能break艰争?如何實現(xiàn)Foreach中的break語義襟交?
思路
Q1:Foreach中使用break為什么會報錯漂坏?
A1:Foreach的語法是
Array.Foreach(function,[thisObj]);
它只是個Array的方法棍厂,不是真正的循環(huán)體枫吧,所以不能在Function的函數(shù)體內使用braak或者return來實現(xiàn)打破循環(huán)腹纳。
Q2:JS中怎么使用break身腻?
A2:經過測試雄坪,老老實實寫for循環(huán)體是可以使用break的厘熟,完全沒問題,只是寫起來很麻煩维哈。
Q3:有沒有簡單好寫的語法在js中使用break绳姨?
A3:可以使用for-in語句:
for (var index in myArray) { // 不要真的這樣寫
console.log(myArray[index]);
}
但是這樣寫有若干問題:比如index是字符串,而不是數(shù)值阔挠;另外飘庄,這個循環(huán)會以隨即順序遍歷數(shù)組。
Q4:更好的語法:for-of
A4:這個語法和C++11支持的的for(auto i: Array)語法一樣:
for (var value of myArray) {
console.log(value);
}