問題:我自定義了一個each迭代函數,想比較兩個數組是否一致。如果遍歷過程中發現不一樣,則退出循環。如何退出循環現在有些疑問。代碼:/* 自己實現迭代器*/const each = function(arr,callback){ for(var i=0;i<arr.length;i++){ callback.call(arr[i],i,arr[i]); }}/* 比較兩數組是否一樣 -----方式一*/const compare = function(arr1,arr2){ if(arr1.length !== arr2.length){ console.log("兩數組長度不一致"); return; } each(arr1,function(index,item){ if(item !== arr2[index]){ console.log("兩數組不一致"); return; } })}/* 比較兩數組是否一樣-----方式二*/const compare = function(arr1,arr2){ if(arr1.length !== arr2.length){ console.log("兩數組長度不一致"); return; } var breaked = false; each(arr1,function(index,item){ if(breaked){ return; } if(item !== arr2[index]){ console.log("兩數組不一致"); breaked = true; } })}疑問:使用方式一,如果不相等,循環還會繼續執行,不會終止。但是使用方式二可以終止循環。請問兩方式的區別在哪里。
return如何終止each迭代
當年話下
2019-03-19 17:19:31