SOURCE

/*
    参考链接:https://juejin.cn/post/6844904142058553351#heading-1
    遍历方式:
        for、for...in、for...of、map、forEach
*/

// for:最常见的循环方式,使用频率高,性能也是不错的
let arr = ['apple', 'orange'];
for (let index = 0; index < arr.length; index++) {
    console.log('————for————', index, arr[index]);
}

// for...of:语法简洁,直接获取输出内容,性能优于 for...in
// 
for (let value of arr) {
    console.log('————for...of————', value);
}

// for...in,用于遍历 Object 多些,效率低于 for,for...of
// for...in,用在可枚举的数据,如:对象、数组、字符串
for (let key in arr) {
    console.log('————for...in————', key, arr[key])
}

// for...of Object.keys 遍历 Object 对象的方法
// for...of 用在可迭代的数据,如 数组、字符串、Map、Set
let objs = {
    name: 'Tom',
    age: '18',
    work: 'it'
}

for (let value of Object.keys(objs)) {
    console.log('————for...of Object.keys————', value, objs[value]);
}

// forEach Array 自带遍历方法,可以输出 元素、下标、源数组,但是在遍历的过程中想要中断遍历是不行的
arr.forEach((item, index, arr) => {
    console.log('————forEach————', item, index, arr);
})

/*
    for...of 终止后续的程序或者终止当前的循环可以使用到: break、 continue;
    break;       ==> 用于跳出当前循环,如果 for 循环中嵌套了 for 循环,那么循环都会被终止;
    continue     ==> 跳出当前循环,并不会终止后续循环;
*/
let arr2 = ['apple', 'orange', 'banner'];
for (let value of arr2) {
    for (let v of arr) {
        console.log('————for...of2————', v);
    }
    if (value === 'orange') break;
    console.log('————for...of————', value);
}
console 命令行工具 X clear

                    
>
console