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
  • 相关阅读:
    vbs实现c++的vector
    二叉树的线索化及其遍历(必会)
    二叉树的7种遍历(必背)
    PyQt5发布技巧:指定插件(plugins)路径
    pyqt5环境变量踩坑记
    怎样把ndarray转换为PyQt中的QPixmap
    桌面应用“标注器”打包踩坑记
    怎样用cmd脚本添加Qt的环境变量
    Krpano动态热点添加始终显示的文字
    VS解决方案中个文件类型含义
  • 原文地址:https://www.cnblogs.com/liangfc/p/8722389.html
Copyright © 2011-2022 走看看