资讯专栏INFORMATION COLUMN

js中Array方法重写(二):myForEach;myEvery;mySome;myFilter;

dailybird / 3394人阅读

摘要:一数组每个元素都执行一次回调函数二检测数值元素的每个元素是否都符合条件三检测数组元素中是否有元素符合指定条件四检测数值元素,并返回符合条件所有元素的数组五将数组元素计算为一个值从左到右以上回调函数只是手写简化版,无法传参数,若有误或建议,请

一、myForEach
//myForeach    数组每个元素都执行一次回调函数
Array.prototype.myForEach = function(callback){
    for(var i = 0 ; i < this.length ; i++){
        var element = this[i];
        callback(element,i,this);
    }
}

二、myEvery
//myEvery    检测数值元素的每个元素是否都符合条件
Array.prototype.myEvery = function(callback){
    for(var i = 0 ; i < this.length ; i++){
        var item = this[i];
        if(!callback(item,i,this)){
            return false;
        }    
    }
    return true;
}

三、mySome
//mySome    检测数组元素中是否有元素符合指定条件
Array.prototype.mySome = function(callback){
    for(var i = 0 ; i < this.length ; i++){
        var item = this[i];
        if(callback(item,i,this)){
            return true;
        }
        
    }
    return false;
}

四、myFilter
//myFilter    检测数值元素,并返回符合条件所有元素的数组
Array.prototype.myFilter = function(callback){
    for(var i = 0 ; i < this.length ; i++){
        var item = this[i];
        if(callback(item,i,this)){
            arr[temp] = item;
            temp++;
        }    
    }
    return arr;
}

五、myReduce
//myReduce    将数组元素计算为一个值(从左到右)
Array.prototype.myReduce = function(callback,initialValue){
    var num = 0;
    if (initialValue != undefined) {
        total = initialValue;
    }else{
        total = this[0];
        num = 1;
    }

    for(i = num ; i < this.length ; i++){
        var item = this[i];
        total = callback(total,item,i,this);
        
    }
    return total;
}

以上回调函数只是手写简化版,无法传this参数,若有误(或建议),请指正。 ^_^

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/52324.html

相关文章

  • jsArray方法重写):myForEachmyEverymySomemyFilter

    摘要:一数组每个元素都执行一次回调函数二检测数值元素的每个元素是否都符合条件三检测数组元素中是否有元素符合指定条件四检测数值元素,并返回符合条件所有元素的数组五将数组元素计算为一个值从左到右以上回调函数只是手写简化版,无法传参数,若有误或建议,请 一、myForEach //myForeach 数组每个元素都执行一次回调函数 Array.prototype.myForEach = fu...

    blair 评论0 收藏0
  • 乐字节-Java8核心特性实战-接口默认方法

    摘要:语法中接口可以包含实现方法,需要使用修饰,此类方法称为默认方法。核心特性接口默认方法就介绍到这里了,后续小乐会继续讲述核心特性。 JAVA8已经发布很久,是自java5(2004年发布)之后Oracle发布的最重要的一个版本。其中包括语言、编译器、库、工具和JVM等诸多方面的新特性,对于国内外互联网公司来说,Java8是以后技术开发的趋势。这里主要讲解在开发中几个核心的新特性。(主要从...

    lbool 评论0 收藏0
  • javascript -- 回调函数之美

    javascript -- 回调函数 在高级语言层出不穷的年代, 各个语言都号称有着一切皆为对象的自豪说法, 而 js 作为一门脚本语言却相对于java等传统面向对象语言有很大的不同之处, 除了 js 诡异的继承体系之外, 最令人着迷的一个特性就是回调函数, 当然也有很多人对他诟病, 笔者认为 回调函数 和 异步 是js语言特性的两大最为突出的店, 当然正如所有优点需要满足自我的需求, 这个世界...

    kbyyd24 评论0 收藏0
  • JavaScript的数组遍历forEach()与map()的区别

    摘要:加粗文字不管是还是在下都不兼容不兼容的情况下在上没有这两个方法那么需要我们自己封装一个都兼容的方法,代码如下遍历数组回调函数上下文下自己编写回调函数执行的逻辑遍历数组回调函数上下文下自己编写回调函数执行的逻辑 原理: 高级浏览器支持forEach方法 语法:forEach和map都支持2个参数:一个是回调函数(item,index,list)和上下文; forEach:用来遍历数组中...

    Mr_zhang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<