$.each? jq提供的遍歷方法:
$each 跳出循環(huán) return false、跳過循環(huán) return true 。測試如下:
備注:let arr1 = [1,34,4,555,337,77]
forEach es5提供的方法:
forEach 跳出循環(huán):沒有(可利用try catch 的hack方法變相實現(xiàn))解孙、跳過循環(huán) return 任意 。測試如下:
備注:在$each抛人、forEach中使用break continue 會報錯弛姜。
for:js提供的:
for 跳出循環(huán): break 、跳過循環(huán):continue 妖枚。測試如下:
拓展:forEach()無法在所有元素都傳遞給調(diào)用的函數(shù)之前終止遍歷廷臼。也就是說,沒有像for循環(huán)中使用的相應(yīng)的break語句绝页。如果要提前終止荠商,必須把forEach()方法放在一個try塊中,并能拋出一個異常抒寂。如果forEach()調(diào)用的函數(shù)拋出foreach.break異常结啼,循環(huán)會提前終止:
function foreach(a,f,t){
? ? try { a.forEach(f,t); }
catch(e){
if(e === foreach.break)return;
else throw e;
}
}
foreach.break = new Error("StopIteration");? ? ?
摘自《javascript權(quán)威指南》
測試如下: