js中對數(shù)組、對象的遍歷方法眾多扩所,但并不是每個方法都可以使用break/continue跳出循環(huán),這些方法我們經(jīng)常使用卻也很容易混淆,特總結(jié)如下:
? var arr = ['beijing', 'shanghai', 'guangzhou', 'shenzhen', 'hangzhou', 'chengdu'], obj = { name: 'tom', age: 20, address: 'beijing', job: 'artist' };
? ? //for循環(huán)可以使用break/continue跳出循環(huán)
? ? 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跳出循環(huán)
? ? for (const key in obj) {
? ? ? ? if (key == 'age') continue;
? ? ? ? console.log(key);
? ? ? ? if (key == 'address') break;
? ? }
? ? console.log('------------------------------')
? ? //forof可以使用break/continue跳出循環(huán)
? ? for (let item of arr) {
? ? ? ? if (item == 'shanghai') continue;
? ? ? ? console.log(item);
? ? ? ? if (item == 'shenzhen') break;
? ? }
? ? console.log('------------------------------')
? ? //map不能使用break/continue跳出循環(huán)
? ? arr.map((item, i) => {
? ? ? ? // if (i == 1) continue;
? ? ? ? console.log(item);
? ? ? ? // if (i == 3) break;
? ? })
? ? console.log('------------------------------')
? ? //forEach不能使用break/continue跳出循環(huán)
? ? arr.forEach((item, i) => {
? ? ? ? //if(i == 1) continue;
? ? ? ? console.log(item);
? ? ? ? //if(i ==3) break;
? ? })
---------------------
所以常見的方法中 for猛遍、for in、for of可以使用break/continue跳出循環(huán)号坡。