const arr = [1, 2, 3];
// for循環: 能夠使用break, continue, return控制循環; 通過下標間接訪問元素
for (let index = 0; index < arr.length; index++) {
const element = arr[index];
console.log(element);
}
// forEach: 不能使用break, continue控制循環(函數的本意就是要遍歷每個元素), 但是可以使用return效果相當於continue(不建議在該函數中使用)
arr.forEach((value, index) => {
if (value == 2) {
return false;
}
// console.log(value);
});
// for-in: 最好用於遍歷對象, 支持break和continue, return終止循環
for (const key in arr) {
if (arr.hasOwnProperty(key)) {
const element = arr[key];
// if(element === 2){
// break;
// }
console.log(element);
}
}
// for-of: 專門為數組設計的遍歷方法,直接遍歷其屬性,支持break和continue, return終止循環
// 也可以遍歷具有Symbol.iterator接口的任何數據結構
for (const item of arr) {
if(item === 2){
continue;
}
// console.log(item);
}
const iterator = arr[Symbol.iterator]();
while(true){
const next = iterator.next();
if(next.done){
break;
}
// console.log(next.value);
}
// every: 變相遍歷數組
arr.every((value, index) => {
// console.log(index, value);
return true; // 返回真值繼續下次循環等同於continue,返回假值結束循環等同於break
});