1.forEach 方法

forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数

遍历数组.forEach(function (当前数组元素,索引号){

    //函数体

}) 

参数当前数组元素是必须要写的, 索引号可选。

    let cities = ['南京', '北京', '上海', '深圳', '广州']    
    cities.forEach(function (value, key) {
       console.log(key + ':' + value); //0:南京 1:北京 2:上海 3:深圳 4:广州
    })

return 中断不了,break更不行,只能中断本次循环

    let cities = ['南京', '北京', '上海', '深圳', '广州'];    
    cities.forEach(function (value, key) {
        if (value == '上海') {
          return false;
        }
        console.log(key + ':' + value); //0:南京 1:北京 3:深圳 4:广州
     })

正确的中断方法是 throw error

    try {    
          let cities = ['南京', '北京', '上海', '深圳', '广州']
          cities.forEach(function (value, key) {
                 if (value == '上海') {
                     throw new Error('Forced end');
                 }
                 console.log(key + ':' + value); //0:南京 1:北京
          })
     } catch (e) {
         console.log(e.message);
     }

2. for 方法

for (初始化变量;条件表达式;操作表达式) {

    //循环体

}

    let cities = ['南京', '北京', '上海', '深圳', '广州'];    
    for (let i = 0; i < cities.length; i++) {
         console.log(i + ':' + cities[i]); //0:南京 1:北京 2:上海 3:深圳 4:广州
    }

breack 中止本次循环

    let cities = ['南京', '北京', '上海', '深圳', '广州'];    
    for (let i = 0; i < cities.length; i++) {
         if (cities[i] == '上海') {
           break;
         }
         console.log(i + ':' + cities[i]); //0:南京 1:北京
     }

continue 跳过本次循环,主循环继续

    let cities = ['南京', '北京', '上海', '深圳', '广州'];    
    for (let i = 0; i < cities.length; i++) {
            if (cities[i] == '上海') {
                   continue;
            }
             console.log(i + ':' + cities[i]); //0:南京 1:北京 3:深圳 4:广州
    }