ES5常用数组迭代方法

今日与大家分享的是ES5常用数组方法——迭代方法,迭代方法在很多时候都是非常非常好用的!接下来主要讲解的是迭代方法实现的原理

一、arr.forEach()
用途:专门用来遍历数组的没有返回值。
用法:用来遍历数组的

var = [5,6,2,3,9]
arr.forEach(function( item , index , arr){
console.log( item , index , arr);
})

原理:

var arr = [5,6,2,3,9];
        function myForEach(arr,fn){
            for(var i = 0; i < arr.length; i++){
                fn(arr[i],i,arr);
            }
        }
        var res = myForEach(arr,function(item,index,arr){
            console.log(item,index,arr);
        })
        console.log(res);

二、arr.map()
用途:想要更改数组每一项的时候使用,返回值是数组
用法:

var arr = [4,3,2,1,0];
var res = arr.map( function( item , index , arr){
// 基本结构使用和forEach没有任何区别;
// console.log(item , index , arr)
return parseInt(item * 1.3 * 10) / 10
})
console.log(res);

原理:

 var arr = [4,3,2,1,0];
        function myMap(arr,fn){
            var newArr = [];
            for(var i = 0; i < arr.length; i++){
                    newArr.push(fn(arr[i],i,arr));
            }
            return newArr;
        }
       var res = myMap(arr,function(item,index,arr){
           return parseInt(item * 1.3 * 10) / 10;
       })
        console.log(res);

三、arr.filter()
用途:返回筛选之后的数组
用法:

var arr = [4,3,2,1,0];
var res = arr.filter( function( item , index , arr ){
// return true;
// 过滤功能在这里要写条件;
return item > 2;
})
// 函数什么的都不写的情况执行结果都是 undefined , 那么一项内容都不会放进新数组之中;
console.log(res);

var arr = [4,3,2,1,0];
        function myFilter(arr,fn){
            var newArr = [];
            for(var i = 0; i < arr.length; i++){
                if(fn(arr[i],i,arr)){
                    newArr.push(arr[i]);
                }
            }
            return newArr;
        }
        var res = myFilter(arr,function(item,index,arr){
            return item > 2;
        })
        console.log(res);

四、arr.every()
用途:返回值为true或false,必须所有执行结果都为true才为true;如果某一个函数执行结果为false,那么后续循环不再执行
用法:

var arr = [5,2,1,4];
var res = arr.every( function( item , index , arr ){
return typeof item === “number”;
})
console.log(res);

原理:

  var arr = [5,2,1,4];
        function myEvery(arr,fn){
            var flag = true;
            for(var i = 0; i < arr.length; i++){
                if(!fn(arr[i],i,arr)){
                    flag = false;
                    break;
                }
            }
            return flag;
        }
        var res = myEvery(arr,function(item,index,arr){
            return typeof item === "number";
        })
        console.log(res);

五、arr.some()
用途:返回值为true或false,必须所有执行结果都为false才为false;如果某一个函数执行结果为true,那么后续循环不再执行
用法:

var arr = [1,5,“hello”];
var res = arr.some( function( item ,index ){
return typeof item === “number”;
})
console.log(res);

原理:

var arr = [1,5,"hello"];
        function mySome(arr,fn){
            var flag = false;
            for(var i = 0; i < arr.length; i++){
                if(fn(arr[i],i,arr)){
                    flag = true;
                    break;
                }
            }
            return flag;
        }
        var res = mySome(arr,function(item,index,arr){
            return typeof item === "number";
        })
        console.log(res);

总结一下:

  • forEach => 专门用来遍历数组的; 没有返回值
  • map => 想要更改数组每一项的时候使用这个方法; 返回值是数组
  • fileter => 过滤 返回值是数组
  • every => 判定全部都; 返回值是布尔值
  • some => 判定有一个; 返回值是布尔值

今日分享到此结束~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值