zoukankan      html  css  js  c++  java
  • 仿内置方法

    1.仿内置方法数组slice

    Array.prototype.mySlice=function(n1,n2){
        var n1,n2,ary=[];
        if (arguments.length==0){
          //    一、判断传进0个参数
          return ary
        }else if(arguments.length==1){
    //      二、判断传进1个参数
           n1=Number(n1);
          if (isNaN(n1)){return ary};
    //     2.1判断参数是否在length范围
          if (Math.abs(n1)<this.length-1){
            if (n1>=0){
              for(var i=n1;i<this.length;i++){
                ary[ary.length]=this[i];
              }
              return ary
            }else{
              for(var i=this.length-1;i>=this.length+n1;i--){
                ary.unshift(this[i]);
              }
              return ary
            }
          }
        }else if(arguments.length==2){
    //      三、判断传进2个参数
           n1=Number(n1);
           n2=Number(n2);
    //      3.1判断两个参数是否是有效数字
          if(isNaN(n1)||isNaN(n2)){
            return ary
          }else{
    //        1.n1,n2都是正数且n1<n2
            if (n1<n2&&n1>-1&&n2>-1){
              for(var i=n1;this.length<n2?i<this.length:i<n2;i++){
                ary[ary.length]=this[i];
              }
              return ary
            }else if(n1<n2&&n1<0&&n2<0){
    //2.     2.n1,n2都式负数,且n1?<n2
              for (var i=(this.length+n1>0?this.length+n1:0);i<this.length+n2;i++){
                 ary[ary.length]=this[i]
              }
              return ary
            }else if(n1>=0&&n2<0||n1<0&&n2>=0){
    //3.    n1,n2一正一负,怎么办
              if ((n1>=0&&n2<0)&&(n1<this.length+n2)){
                for(var i=n1;i<this.length+n2;i++){
                  ary[ary.length]=this[i]
                }
                return ary
              }else if((n1<0&&n2>=0)&&(this.length+n1<n2)){
                for(var i=(n1>0?this.length+n1:0);i<(n2<this.length?n2:this.length);i++){
                  ary[ary.length]=this[i]
                }
                return ary
              }
            }
        }
        return ary
          }
      }

    // 实现一个需求 (5).push(10).reduce(2) 5+10-2方法

      Number.prototype.push=function(n){
        var temp=Number(n);
        var _this=Number(this);
        return _this+=temp;
      }
    Number.prototype.reduce=function(n){
      var temp=Number(n);
      var _this=Number(this);
      return _this-=temp;
    }
      var a=5;
    //console.log(a.push(5).reduce(2));  //8
  • 相关阅读:
    属性注入(依赖注入)
    Spring之ioc
    Spring初始案例
    ::before和::after伪元素、:visited和:link、transform: scaleX(2);的使用
    给博客博文加上日期分类(set、map)
    Jquery父子选取心得
    先从css3开始拾起
    尝试博客文章一号
    Response.setContentType()
    pom配置详解
  • 原文地址:https://www.cnblogs.com/liangfc/p/8722389.html
Copyright © 2011-2022 走看看