1.首先看看跳出循環的方法
1)結束本次循環進入下一次循環:
continue:for循環 、 for in 、 for of
return true/false:for Each
2)結束整個循環
break:for循環 、 for in 、 for of、while、do{}while()、
try catch:for Each等各種需要終止循環的程序
3)注意:如果有兩層for循環,內層continue只結束內層本次循環,內層break只結束內層循環
for(var i=1;i<=5;i++){
for(var j=1;j<=3;j++){
if(j==2){
break; //i取每個值時,都會執行j的循環,但是當j==2時,本次i對應的j循環就全部結束,進入下一個i的j循環
}
alert(j)
}
}
2.js常用的循環遍歷
1)array.map(function(currentValue,index,arr),thisValue) 返回數組
map()方法返回一個新數組,數組中的元素爲原始數組元素調用函數處理的後值。
map()方法按照原始數組元素順序依次處理元素。
var numbers = [1,2,3,4];
function myFunction(num,index,arr){
console.log('arr',arr);
console.log('index',index);
console.log('num',num);
return num * 2;
}
var mm = numbers.map(myFunction);
console.log(mm) //[2,4,6,8]
2)array.some(function(currentValue,index,arr),thisValue) 返回布爾值
some() 方法用於檢測數組中的元素是否滿足指定條件(函數提供)。
some() 方法會依次執行數組的每個元素:
- 如果有一個元素滿足條件,則表達式返回true , 剩餘的元素不會再執行檢測。
- 如果沒有滿足條件的元素,則返回false。
var ages = [3, 10, 18, 20];
function checkAdult(age) {
return age >= 18;
}
var m= ages.some(checkAdult); //true
3)Object.keys(obj|array) 返回數組
返回一個所有元素爲字符串的數組,其元素來自於從給定的object
上面可直接枚舉的屬性。這些屬性的順序與手動遍歷該對象屬性時的一致。
var arr = ['a', 'b', 'c'];
console.log(Object.keys(arr)); // console: ['0', '1', '2']
// array like object
var obj = { 0: 'a', 1: 'b', 2: 'c' };
console.log(Object.keys(obj)); // console: ['0', '1', '2']
4)array.filter(function(currentValue,index,arr), thisValue) 返回數組
filter() 方法創建一個新的數組,新數組中的元素是通過檢查指定數組中符合條件的所有元素。
注意: filter() 不會對空數組進行檢測。
注意: filter() 不會改變原始數組。
var ages = [32, 33, 16, 40];
function checkAdult(age) {
return age >= 18;
}
var m= ages.filter(checkAdult); //[32,33,40]
5)for of 一般用來遍歷數組(一般不用for in遍歷數組:會把數組所有原型屬性及方法都列舉出來影響預期結果)
var array = ["first","second","third","fourth"];
for(var item of array){
if (item == "third") {
break;
}
alert(item);// first,sencond
}
6)for in 用來遍歷對象屬性(使用for in會遍歷數組所有的可枚舉屬性,包括原型)
定義:用於循環遍歷數組或對象屬性,fot in循環裏面的index是string類型的,
代碼每執行一次,就會對數組的元素或者對象的屬性進行一次操作
缺點:某些情況下,會出現隨機順序的遍歷,因爲裏面的值是string類型,所以
增加了轉換過程,因此開銷較大
優點:可以遍歷數組的鍵名,遍歷對象簡潔方便
var obj={
name:'zs',
age:'23',
sex:'男'
}
for(var key in obj){
if (key == "age") {
continue;
}
alert(key);// ['name','sex']
}