遍历数组的方法以及区别

1.for循环遍历数组

for(let i=0;i<arr.length;i++){
    console.log(arr[i])
}

2.for of

ES6 新增接口概念 ,对所有具有interator的数据进行遍历

        let arr=[1,2,3,4,5,6]

        for( let item of arr)
        {
            console.log(item)
        }
        //1 2 3 4 5 6

3.forEach方法

参数:拥有三个参数,第一个参数当前循环元素,第二个参数为元素下标,第三个参数为数组本身,森哥参数都可选.

  let arr=[1,2,3,4,5,6]
        arr.forEach((item,index,arr)=>{
            console.log(item)
        })
        // 输出:1 2 3 4 5 6

特点:提供一个callback,默认不会有return ,不能够被break中断循环

4.map方法

参数: 与forEach3个参数相同,均可选

        let arr=[1,2,3,4,5]
        let newArr=[]
       newArr= arr.map((item,index,arr)=>{
            console.log(item,"元素"+index)
            return item>2?item:0
        })
        /*
             1 元素0
             2 元素1
             3 元素2
             4 元素3
             5 元素4  (元素下标从0开始)
        */
      
        console.log(newArr,'新数组')
        //输出:[0,0,3,4,5] '新数组'
        console.log(arr,'原数组')
        //输出:[1,2,3,4,5] '原数组'

特点:map方法会产生一个新数组,本身是不会改变原数组的

5.some和every

参数:与forEach相同

        let arr=[1,2,3,4,5,6]

        let someArr=arr.some((item,index)=>{
            return item===1
        })
        let everyArr=arr.every((item,index)=>{
            return item===1
        })
        console.log(someArr)//输出:true
        
        console.log(everyArr)//输出:false

特点:都有一个callback,每个元素执行回调. 

        return 都为true;every返回true ,否则为false;

        return 其中一个为true,some返回true,全部false 返回false

        不改变原数组

6.reduce

参数: 第一个参数为callback(必须),第二个参数为初始值(可选);

        callnback有四个参数: 本循环的累计值,当前元素(必须),该元素下标(可选),数组本身(可选)

        let arr=[1,2,3,4,5,6]

        let sum= arr.reduce((val,item,index,arr)=>{
        return val+item
       },-6)
       console.log(sum)//15

特点:reduce会将第二个参数作为初始值,数组元素执行回调,上一次的返回值(return)作为下一次的回调的初始值(val),最后返回结果(sum)

        如果没有初始值,跳过第一次循环,将第一个元素作为初始值进入下一次循环.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值