ES6数组遍历与ES5数组遍历

一、ES6数组遍历

(1)find 返回数组中第一个符合条件的元素

        let result = arr.find( (val) => {
            return val % 2 == 0;
        });
        console.log(result);

(2) findIndex,返回第一个符合条件的元素的索引

        let result = arr.findIndex( (val) => {
            return val % 2 == 0;
        });
        console.log(result);

(3) for of

获取值

        for(let item of arr){
            console.log(item);
        }

         for(let item of arr.values()){
            console.log(item);
        }

获取索引

        for(let index of arr.keys()){
            console.log(index);
        } 

获取值和索引

         for(let [index,item] of arr.entries()){
            console.log(index,item);
        }

二、ES5数组遍历

(1)forEach,不支持continue和break

        arr.forEach((item,index,array) => {
            console.log(item,index);
        });

 (2)map遍历,传入一个回调函数,返回一个新数组

        let result = arr.map((val) => {
            val ++;
            return val;
        })
        console.log(arr,result);

(3)filter遍历,传入回调函数,返回过滤后的数组

        let result = arr.filter( (val) => {
            return val % 2 == 0;
        });
        console.log(result);

 (4)some,返回是否存在要检测的值,返回Boolean

        let result = arr.some( (val) => {
            return val == 2;
        });
        console.log(arr,result);

 (5)every,只有每个元素都符合才返回true

        let result = arr.every( (val) => {
            return val % 2 == 0;
        });
        console.log(result);

(6)reduce

去重

        let result = arr.reduce( (pre,cur) => {
            pre.indexOf(cur) == -1 && pre.push(cur);
            return pre;
        },[]);
        console.log(result); 

累加

        let result = arr.reduce( (pre,cur) => {
            return pre + cur;
        });
        console.log(result);

最大值

        let result = arr.reduce( (pre,cur) => {
            return Math.max(pre,cur);
        });
        console.log(result);

(7)for in

for in 会把Array.prorotype上的自定义方法也遍历出来,不推荐使用for in 遍历数组

        Array.prototype.myFn = function(){};
        
        for(index in arr){
            console.log(index,arr[index]);
        } 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值