循环遍历数组的方法

方法1: 通过for循环,生成所有的索引下标

/*
        for(var i = 0 ; i <= arr.length-1 ; i++){ 程序内容 }
    */

方法2: 通过JavaScript程序,给我们提供的方法来实现循环遍历

// 语法: 

    /*
        数组.forEach(function(形参1,形参2,形参3){})
        形参1: 存储的是当前循环次数时,获取的单元数据
        参数2: 存储的是当前循环次数时,获取的单元索引下标
        参数3: 存储的是原始数组
        三个形参,不一定都要定义,可以根据实际需求
        形参可以任意定义,只要符合命名规范就可以
        forEach() 只能循环遍历数组,不能循环遍历对象
    */
     /*
        for...in   
        for(var 自定义变量 in 数组){程序}
        会将 数组的索引下标,存储在自定义变量中
        通过自定义变量存储的索引,来获取数组的单元数据信息
        只能获取索引,别的不能获取
    */

总结:
forEach() : 专门针对数组的循环遍历
语法形式:
数组.forEach(function(参数1,参数2,参数3){程序})
参数1 : 存储 数组单元数据
参数2 : 存储 数组单元索引
参数3 : 存储 原始数组
参数名称可以任意定义,参数个数,根据需求来定义
for…in : 数组,对象都可以使用的循环
语法形式:
for(var 自定义变量 in 数组){程序}
自定义变量 : 存储 数组单元索引
存储的索引的数据类型是字符串类型
如果要执行加法运算,需要转化为数值类型
只有for…in需要转化
for循环 forEach()循环 for…in循环
针对数组而言,都可以完成我们的需求
只是针对不同的情况
推荐使用 forEach() 最简单最方便
for循环的优点是,可以控制循环的起始和结束
for…in一般是针对对象的循环

// for...in    数组,对象都可以使用的循环遍历
    var arr = ['北京','上海','广州','重庆','天津'];
    /*
        第一次循环,循环对象是 第一个单元 
            val : 存储数据 '北京'   key : 存储索引 0   arr : 存储原始数组 
        第二次循环,循环对象是 第二个单元 
            val : 存储数据 '上海'   key : 存储索引 1   arr : 存储原始数组 
        第三次循环,循环对象是 第三个单元 
            val : 存储数据 '广州'   key : 存储索引 2   arr : 存储原始数组 
        第四次循环,循环对象是 第四个单元 
            val : 存储数据 '重庆'   key : 存储索引 3   arr : 存储原始数组 
        第五次循环,循环对象是 第五个单元 
            val : 存储数据 '天津'   key : 存储索引 4   arr : 存储原始数组
    */

    // arr.forEach(function(val,key,arr){
    //     console.log(val,key,arr);
    // })

    var arr = ['北京','上海','广州','重庆','天津'];

    for(var key in arr){  // 自定义变量,存储索引 0 1 2 3 4 ....
        console.log(key,arr[key]);   // arr[key] 就是索引对应的数据
    }