js中对数组、对象的遍历方法众多,但并不是每个方法都可以使用break/continue跳出循环,这些方法我们经常使用却也很容易混淆,特总结如下:
var arr = ['beijing', 'shanghai', 'guangzhou', 'shenzhen', 'hangzhou', 'chengdu'], obj = { name: 'tom', age: 20, address: 'beijing', job: 'artist' };
//for循环可以使用break/continue跳出循环
for (let i = 0; i < arr.length; i++) {
if (i == 1) continue;
console.log(arr[i]);
if (i == 3) break;
}
console.log('------------------------------')
//forin可以使用break/continue跳出循环
for (const key in obj) {
if (key == 'age') continue;
console.log(key);
if (key == 'address') break;
}
console.log('------------------------------')
//forof可以使用break/continue跳出循环
for (let item of arr) {
if (item == 'shanghai') continue;
console.log(item);
if (item == 'shenzhen') break;
}
console.log('------------------------------')
//map不能使用break/continue跳出循环
arr.map((item, i) => {
// if (i == 1) continue;
console.log(item);
// if (i == 3) break;
})
console.log('------------------------------')
//forEach不能使用break/continue跳出循环
arr.forEach((item, i) => {
//if(i == 1) continue;
console.log(item);
//if(i ==3) break;
})
---------------------
所以常见的方法中 for、for in、for of可以使用break/continue跳出循环。